<14:30 5교시>
추상클래스를 상속받은 클래스를 클래스의 이너클래스, 메소드의 이너클래스 로 만들어보기
내 삽질
package test.main;
import test.mypac.Weapon;
public class MainClass04 {
public static void main(String[] args) {
//아래의 useWeapon() 메소드를 호출하려면 Weapon type의 참조값이 필요함
//아래의 메소드를 호출했을 때 "바다에 있는 적들을 공격"하려면 여기에서 어떻게 코딩해야 할까
Weapon w1 = new useWeapon();
MainClass04.useWeapon(w1);
}
public static void useWeapon(Weapon w) {
w.prepare();
w.attack();
}
public static class useWeapon extends Weapon {
@Override
public void attack() {
System.out.println("바다에 있는 적 공격");
}
}
}
package test.main;
import test.mypac.Weapon;
public class MainClass04 {
static class useWeapon extends Weapon {
@Override
public void attack() {
System.out.println("바다에 있는 적 공격");
}
}
public static void main(String[] args) {
//아래의 useWeapon() 메소드를 호출하려면 Weapon type의 참조값이 필요함
//아래의 메소드를 호출했을 때 "바다에 있는 적들을 공격"하려면 여기에서 어떻게 코딩해야 할까
Weapon w1 = new useWeapon();
MainClass04.useWeapon(w1);
class SpaceWeapon extends Weapon{
@Override
public void attack() {
System.out.println("우주에 있는 적 공격");
}
}
useWeapon(new SpaceWeapon());
}
public static void useWeapon(Weapon w) {
w.prepare();
w.attack();
}
}
이번 시간 너무 졸렸다. 살쪄서 그런가!! 낼부턴 좀 적게 먹을까.
<15:30 6교시>
쉬는 시간에 눈이랑 관자놀이 목이랑 턱 마사지 해서 좀 깼다. 운동을 하긴 해야겠다 정말
패스워드에 입력할 토큰 만들러 가는 길(토큰은 한 번 받으면 잊어먹으면 안된다)
프로필> Settings >Developer Settings > Personal access Tokens 들어와서 Generate new Token하면 됨.
집에서 클론 파일 내려받기 : 내려받을 폴더에서 Shift 마우스 우클릭 > Git Bash 실행
acorn@BOOK-2B7PDQ538V MINGW64 ~/Desktop/MyHome/playground
$ git clone https://github.com/CrystalJiSeon/javapractice.git
Cloning into 'javapractice'...
remote: Enumerating objects: 155, done.
remote: Counting objects: 100% (155/155), done.
remote: Compressing objects: 100% (114/114), done.
remote: Total 155 (delta 16), reused 155 (delta 16), pack-reused 0 (from 0)
Receiving objects: 100% (155/155), 41.79 KiB | 6.96 MiB/s, done.
Resolving deltas: 100% (16/16), done.
acorn@BOOK-2B7PDQ538V MINGW64 ~/Desktop/MyHome/playground
$
집에서 한 컴퓨터에서 두개의 이클립스 실행하기 : 버전이 다른 두개를 받는다
학원에서 두 개의 이클립스를 돌리면서 하나는 학원에서 학습하는 환경 용도로,
다른 하나는 집 환경에서 하는 흉내를 내는 용도로 사용하고자 함.
<16:30 7교시>
Git환경에서 add existing Git folder인가 이거 눌러서 아까 Git Bash로 만들어 놓은 클론을 가져올 수도 있고,
Git Bash로 클론을 만들지 않았다면 이클립스 Git 환경에서 바로 추가해서 인식까지 할 수 있다.
마우스 우클릭 눌러서 import projects 누르면 .gitignore로 안 가져오는 바람에 기능을 못해서 자바환경에서 안 보이던 폴더들이 보인다.
개별 폴더를 import 할 필요 없이 일괄 import도 가능하더라.
import with existing project 어쩌구는 모르겠어서 일단 import with general 어쩌구를 선택했다.
앞으로 기능에 이상이 없기를 바라며 봤는데 일단 Github와 연동도 잘 돼 있는거 같고 큰 문제는 없어보인다.
아무튼 이제 아까 5교시때 하던걸로 돌아옴
package test.main;
import test.mypac.Weapon;
public class MainClass05 {
public static void main(String[] args) {
//익명의 inner class를 이용해서 Weapon type의 참조값을 얻어내서 변수에 담은 다음
Weapon w1 = new Weapon() {
@Override
public void attack() {
System.out.println("아무 곳이나 공격");
}
};
//중괄호는 Class이지만 이름은 없는 익명의 클래스가 생성된다.
//Weapon w1=new Weapon() Weapon{}클래스를 상속 받은 익명의 Class라고 할 수 있다.
//메소드 호출하면서 전달하기
useWeapon(w1);
//메소드 호출하면서 즉석에서 Weapon type의 참조값을 얻어서 전달하기
useWeapon(new Weapon() {
@Override
public void attack() {
// TODO Auto-generated method stub
}
});
}
public static void useWeapon(Weapon w) {
w.prepare();
w.attack();
}
}
아 내가 아까 했던게 오류가 이제 들통났다.
히스토리 다 사라진줄알아서 망했네 했는데
???
히스토리 다 들어옴
음 뭐지 merge도 해냈음
신기하네
몇 번 더 해봐야겠네
근데 오류가 하나 있던데 이건 아마 버전이 달라서 그런가보네.
Interface 시작만 하고 끝남.
package test.mypac;
/*
* [interface]
* - 생성자가 없다(단독 객체 생성불가)
* - 추상메소드 혹은 디폴트 메소드를 가질 수 있다
* - 필드는 static final 상수만 가질 수 있다
* - 데이터타입의 역할을 할 수 있다
* - interface type의 참조값이 필요하면 구현(implements) 클래스를 만들어서 객체를 생성해야 한다
* - 클래스 상속은 단일 상속이지만, 인터페이스는 다중 구현이 가능하다
*/
public interface Remocon {
/*
* 필드도 가질수 있지만 스태틱 파이널만 가능하다
* static : static 영역에 리모콘 인터페이스와 같이 만들어진다
* final: 값이 결정된 이후에 변경 불가능(상수화 시킨다)
* 생략 가능
*/
public static final String COMPANY="LG";// final 상수는 관례상 필드명을 모두 대문자로
//미완성의 추상 메소드를 멤버로 가질 수 있다.
public void up();
public void down();
}
package test.mypac;
//인터페이스는 implements 해야 한다
public class MyRemocon implements Remocon {
@Override
public void up() {
System.out.println("볼륨을 올려");
}
@Override
public void down() {
System.out.println("볼륨을 내려");
}
}
<17:30 8교시>
오늘 배운거 각자 실습
나는 교재 보면서 놓친 부분 있나 확인하려고 함
'공부의 기록 > 자바 풀 스택 : 수업내용정리' 카테고리의 다른 글
자바 풀 스택 12/20 오후 기록 022-2 (1) | 2024.12.20 |
---|---|
자바 풀 스택 12/20 오전 기록 022-1 (1) | 2024.12.20 |
자바 풀 스택 12/19 오전 기록 021-1 (0) | 2024.12.19 |
자바 풀 스택 12/18 오후 기록 020-2 (1) | 2024.12.18 |
자바 풀 스택 12/18 오전 기록 020-1 (1) | 2024.12.18 |