U E D R , A S I H C RSS

새싹교실/2021/카라반/0517

Difference between r1.3 and the current

@@ -2,11 +2,11 @@

= 참여자 명단 =

|| 단장 || 이길상 || 16학번 || - ||
||<|4> 단원 || 강필중 ||<|4> 21학번 || - ||
|| 권재민 || - ||
|| 김민경 || - ||
|| 이수은 || - ||
|| 단장 || 이길상 || 16학번 || 참여 ||
||<|4> 단원 || 강필중 ||<|4> 21학번 || 참여 ||
|| 권재민 || 참여 ||
|| 김민경 || 참여 ||
|| 이수은 || 참여 ||

= 수업 =
== 진행 ==
@@ -15,41 +15,215 @@

== 내용 ==
'''주제'''
* 설명
* 추상 클래스와 인터페이스
- 각각의 역할과 차이점
- 어떤 상황에서 유용하게 쓸 수 있는가

'''ppt'''
* 링크
* [[https://drive.google.com/file/d/1RQZF9YqyS8EHpEeH2j6BZjLPoW8QXx7S/view?usp=sharing]]
= 코드 =
== 예제1 ==
{{{
-
public class App4 {
public static void main(String[] args) {
// 실행할 코드
 
iPhone iphone = new iPhone();
 
iphone.call("010-5556-8614");
 
iphone.lock();
 
iphone.call("119");
 
iphone.unlock();
 
iphone.call("112");
}
}
 
abstract class SmartPhone{
// 전화 걸기
abstract void call(String number);
 
// 잠금 기능
abstract void lock();
 
// 잠금 해체
abstract void unlock();
}
 
// Ctrl + .
class iPhone extends SmartPhone{
Scanner sc = new Scanner(System.in);
 
private boolean locked = false;
private int pin;
 
@Override
void call(String number) {
if(locked == false){
System.out.println("calling on iPhone : " + number);
}
else{
System.out.println("Message : Unlock first!");
}
}
 
@Override
void lock() {
if(locked == false){
System.out.println("Input Password : ");
pin = sc.nextInt();
locked = true;
}
else{
System.out.println("Phone is already locked!");
}
}
 
@Override
void unlock() {
if(locked == true){
System.out.println("PIN: ");
int input = sc.nextInt();
if(input == pin){
System.out.println("Correct PIN!");
locked = false;
}
else{
System.out.println("Wrong PIN! Try Again!");
}
}
else{
System.out.println("Phone is already unlocked!");
}
}
}
}}}
== 예제2 ==
{{{
public class App5 {
public static void main(String[] args) {
AirAttacker atk = new AirAttacker();
 
atk.attack("Player");
 
atk.fly(10, 5, 6);
 
}
}
 
interface Flyable{
void fly(int x, int y, int z);
}
 
interface Moveable{
void move(int x, int y);
}
 
interface Attackable{
void attack(String target);
}
 
abstract class Unit{
int hp;
int mp;
int exp;
 
Unit(int hp, int mp, int exp){
this.hp = hp;
this.mp = mp;
this.exp = exp;
}
 
abstract void attacked(int damage);
abstract void defeated();
}
 
interface FlyAttacker extends Flyable, Attackable{
abstract void airToground();
}
 
class AirAttacker implements Flyable, Attackable{
 
@Override
public void attack(String target) {
System.out.println("Attack on : " + target);
}
 
@Override
public void fly(int x, int y, int z) {
System.out.println("Move to : " + x + y + z);
}
}
 
class Dragon extends Unit implements FlyAttacker{
 
Dragon(int hp, int mp, int exp) {
super(hp, mp, exp);
//TODO Auto-generated constructor stub
}
 
@Override
public void attack(String target) {
// TODO Auto-generated method stub
 
}
 
@Override
public void fly(int x, int y, int z) {
// TODO Auto-generated method stub
}
 
@Override
void attacked(int damage) {
// TODO Auto-generated method stub
}
 
@Override
void defeated() {
// TODO Auto-generated method stub
}
 
@Override
public void airToground() {
// TODO Auto-generated method stub
}
 
}
}}}

= 숙제 =
1. 회고 작성
 
2.
= 회고록 =
'''권재민'''
* 난이도: /10
* 후기:
* 난이도: 6/10
* 후기: 개념적으로는 잘 이해된다. 아직 직접 코딩해본 경험이 적어서 사용은 좀 어렵다
----
'''이수은'''
* 난이도: 6/10
* 후기: 조금 왔다 갔다 하면서 설명해주시는 부분이 많아서 보기 조금 헷갈렸는데 그래도 잘 가르쳐 주셔서 좋았습니다.
----
'''김민경'''
* 난이도: /10
* 후기:
* 난이도: 7/10
* 후기: 따라갈만했습니다! 스크롤 올렸다 내렸다 많이 하셔서 따라적을 때 조금 오래걸린 것 같습니다.
----
'''강필중'''
* 난이도: 7/10
* 후기: 상황을 토대로 수업을 진행하여 이해하고 언제 필요한지 알기는 편했으나 내용자체가 어렵다는 생각이 들었습니다
----
'''이길상'''
* 후기:
* 후기:
----
= 숙제 제출 =
== 권재민 ==
{{{



1. 참여자 명단


단장 이길상 16학번 참여
단원 강필중 21학번 참여
권재민 참여
김민경 참여
이수은 참여

2. 수업

2.1. 진행

1. 장소 : 구글 미츠
2. 시간 : 19시 ~ 21시

2.2. 내용

주제
  • 추상 클래스와 인터페이스
    - 각각의 역할과 차이점
    - 어떤 상황에서 유용하게 쓸 수 있는가

ppt

3. 코드

3.1. 예제1

public class App4 {
    public static void main(String[] args) {
        // 실행할 코드

        iPhone iphone = new iPhone();

        iphone.call("010-5556-8614");

        iphone.lock();

        iphone.call("119");

        iphone.unlock();

        iphone.call("112");
        
    }
    
}

abstract class SmartPhone{
    // 전화 걸기
    abstract void call(String number);

    // 잠금 기능
    abstract void lock();

    // 잠금 해체
    abstract void unlock();
}

// Ctrl + .
class iPhone extends SmartPhone{
    Scanner sc = new Scanner(System.in);

    private boolean locked = false;
    private int pin;

    @Override
    void call(String number) {
        if(locked == false){
            System.out.println("calling on iPhone : " + number);
        }
        else{
            System.out.println("Message : Unlock first!");
        }
    }

    @Override
    void lock() {
        if(locked == false){
            System.out.println("Input Password : ");
            pin = sc.nextInt();
            locked = true;
        }
        else{
            System.out.println("Phone is already locked!");
        }
    }

    @Override
    void unlock() {
        if(locked == true){
            System.out.println("PIN: ");
            int input = sc.nextInt();
            if(input == pin){
                System.out.println("Correct PIN!");
                locked = false;
            }
            else{
                System.out.println("Wrong PIN! Try Again!");
            }
        }
        else{
            System.out.println("Phone is already unlocked!");
        }
    }
}

3.2. 예제2

public class App5 {
    public static void main(String[] args) {
        AirAttacker atk = new AirAttacker();

        atk.attack("Player");

        atk.fly(10, 5, 6);

    }
}

interface Flyable{
    void fly(int x, int y, int z);
}

interface Moveable{
    void move(int x, int y);
}

interface Attackable{
    void attack(String target);
}

abstract class Unit{
    int hp;
    int mp;
    int exp;

    Unit(int hp, int mp, int exp){
        this.hp = hp;
        this.mp = mp;
        this.exp = exp;
    }

    abstract void attacked(int damage);
    abstract void defeated();
}

interface FlyAttacker extends Flyable, Attackable{
    abstract void airToground();
}

class AirAttacker implements Flyable, Attackable{

    @Override
    public void attack(String target) {
        System.out.println("Attack on : " + target);
        
    }

    @Override
    public void fly(int x, int y, int z) {
        System.out.println("Move to : " + x + y + z);
        
    }
}

class Dragon extends Unit implements FlyAttacker{

    Dragon(int hp, int mp, int exp) {
        super(hp, mp, exp);
        //TODO Auto-generated constructor stub
    }

    @Override
    public void attack(String target) {
        // TODO Auto-generated method stub

    }        

    @Override
    public void fly(int x, int y, int z) {
        // TODO Auto-generated method stub
        
    }

    @Override
    void attacked(int damage) {
        // TODO Auto-generated method stub
        
    }

    @Override
    void defeated() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void airToground() {
        // TODO Auto-generated method stub
        
    }

}

4. 숙제

1. 회고 작성

5. 회고록

권재민
  • 난이도: 6/10
  • 후기: 개념적으로는 잘 이해된다. 아직 직접 코딩해본 경험이 적어서 사용은 좀 어렵다

이수은
  • 난이도: 6/10
  • 후기: 조금 왔다 갔다 하면서 설명해주시는 부분이 많아서 보기 조금 헷갈렸는데 그래도 잘 가르쳐 주셔서 좋았습니다.

김민경
  • 난이도: 7/10
  • 후기: 따라갈만했습니다! 스크롤 올렸다 내렸다 많이 하셔서 따라적을 때 조금 오래걸린 것 같습니다.

강필중
  • 난이도: 7/10
  • 후기: 상황을 토대로 수업을 진행하여 이해하고 언제 필요한지 알기는 편했으나 내용자체가 어렵다는 생각이 들었습니다

이길상
  • 후기:

6. 숙제 제출

6.1. 권재민

내용

6.2. 이수은

내용

6.3. 김민경

내용
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-05-17 11:32:37
Processing time 0.0393 sec