More actions
No edit summary |
imported>이길상 No edit summary |
||
| (7 intermediate revisions by 3 users not shown) | |||
| Line 8: | Line 8: | ||
| 이길상 | | 이길상 | ||
| 16학번 | | 16학번 | ||
| | | 참여 | ||
|- | |- | ||
| rowspan="4" | 단원 | | rowspan="4" | 단원 | ||
| 강필중 | | 강필중 | ||
| rowspan="4" | 21학번 | | rowspan="4" | 21학번 | ||
| | | 참여 | ||
|- | |- | ||
| 권재민 | | 권재민 | ||
| | | 참여 | ||
|- | |- | ||
| 김민경 | | 김민경 | ||
| | | 참여 | ||
|- | |- | ||
| 이수은 | | 이수은 | ||
| | | 참여 | ||
|} | |} | ||
| Line 32: | Line 32: | ||
== 내용 == | == 내용 == | ||
'''주제''' | '''주제''' | ||
* | * 추상 클래스와 인터페이스 | ||
** 각각의 역할과 차이점 | |||
** 어떤 상황에서 유용하게 쓸 수 있는가 | |||
'''ppt''' | '''ppt''' | ||
* | * [[https://drive.google.com/file/d/1RQZF9YqyS8EHpEeH2j6BZjLPoW8QXx7S/view?usp=sharing]] | ||
= 코드 = | = 코드 = | ||
== 예제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!"); | |||
} | |||
} | |||
} | |||
== 예제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 | |||
} | |||
} | |||
= 숙제 = | = 숙제 = | ||
# 회고 작성 | # 회고 작성 | ||
= 회고록 = | = 회고록 = | ||
'''권재민''' | '''권재민''' | ||
* 난이도: /10 | * 난이도: 6/10 | ||
* 후기: | * 후기: 개념적으로는 잘 이해된다. 아직 직접 코딩해본 경험이 적어서 사용은 좀 어렵다 | ||
---- | ---- | ||
'''이수은''' | '''이수은''' | ||
| Line 54: | Line 227: | ||
---- | ---- | ||
'''김민경''' | '''김민경''' | ||
* 난이도: /10 | * 난이도: 7/10 | ||
* 후기: | * 후기: 따라갈만했습니다! 스크롤 올렸다 내렸다 많이 하셔서 따라적을 때 조금 오래걸린 것 같습니다. | ||
---- | ---- | ||
'''강필중''' | '''강필중''' | ||
| Line 62: | Line 235: | ||
---- | ---- | ||
'''이길상''' | '''이길상''' | ||
* 후기: | * 후기: | ||
---- | ---- | ||
= 숙제 제출 = | = 숙제 제출 = | ||
== 권재민 == | == 권재민 == | ||
Latest revision as of 11:32, 17 May 2021
참여자 명단
| 단장 | 이길상 | 16학번 | 참여 |
| 단원 | 강필중 | 21학번 | 참여 |
| 권재민 | 참여 | ||
| 김민경 | 참여 | ||
| 이수은 | 참여 |
수업
진행
- 장소 : 구글 미츠
- 시간 : 19시 ~ 21시
내용
주제
- 추상 클래스와 인터페이스
- 각각의 역할과 차이점
- 어떤 상황에서 유용하게 쓸 수 있는가
ppt
- [[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!");
}
}
}
예제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
}
}
숙제
- 회고 작성
회고록
권재민
- 난이도: 6/10
- 후기: 개념적으로는 잘 이해된다. 아직 직접 코딩해본 경험이 적어서 사용은 좀 어렵다
이수은
- 난이도: 6/10
- 후기: 조금 왔다 갔다 하면서 설명해주시는 부분이 많아서 보기 조금 헷갈렸는데 그래도 잘 가르쳐 주셔서 좋았습니다.
김민경
- 난이도: 7/10
- 후기: 따라갈만했습니다! 스크롤 올렸다 내렸다 많이 하셔서 따라적을 때 조금 오래걸린 것 같습니다.
강필중
- 난이도: 7/10
- 후기: 상황을 토대로 수업을 진행하여 이해하고 언제 필요한지 알기는 편했으나 내용자체가 어렵다는 생각이 들었습니다
이길상
- 후기:
숙제 제출
권재민
내용
이수은
내용
김민경
내용
강필중
내용