1 2 3 4 5 6 7 8 9 10 11 | package pack01; //단지 추상함수만 있는, 코드가없고 ui만 있는것은 인터페이스 //추상함수 = 추상함수 + 기본함수 public class Hello {//abstract class는 코드의 ui를 통일시킨다. //처음부터 표준 ui를 만들어 놓음으로써 다른 class들의 시행착오를 줄인다. //ui강조 구현은 각 class들이 한다. public static void main(String[] args) { } } | cs |
기본 필드 위 함수 및 객체 선언 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | package pack01; class Tiger{ int a=30; Lion lion; //Lion lion = new Lion();//초기화는 가능 = 4줄 8째줄 //a=100;//초기화 뺴고는 다 불가능 대입x Lion c1;//Tiger객체는 안딤 함수1번이 콜되면 사용가능 Lion c2 = new Lion();//그냥 사용 가능 Lion c3;//필드위의 c3는 쓸 방법이없다. void func01(){ c1 = new Lion();//c3는 함수 안의 지역변수로 쓰인다. Lion c1 = new Lion(); a++; lion = new Lion(); Lion lion = new Lion();//위와 상관없이 함수안의 새로운 객체이다. System.out.println("호랑이"); //함수안을 제외하고 코드작성을 할수없다. } } class Lion{ void func01(){ System.out.println("사자"); } } public class Hello { public static void main(String[] args) { Tiger t1 = new Tiger(); t1.c2.func01(); t1.func01(); t1.c1.func01(); //c3는 쓸 방법이없다. } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | package pack01; abstract class Tiger{//객체 생성이 안됨 할게없다 } public class Hello { public static void main(String[] args) { //Tiger t1 = new Tiger();//생성안됨 } } /*package pack01; abstract class Tiger{ void func01(){ System.out.println("호랑이 call"); } } public class Hello { public static void main(String[] args) { } }*/ /*package pack01; abstract class Tiger{ //void func01(); abstract void func01();//미완성 함수 앞에 abstract붙이기 } public class Hello { public static void main(String[] args) { } }*/ /*package pack01; abstract class Tiger{ abstract void func01(); void func02() { System.out.println("호랑이call"); } } class Lion extends Tiger{ void func01() {//추상 클래스 완성 System.out.println("사자call"); } } public class Hello { public static void main(String[] args) { Lion lion = new Lion(); lion.func01(); lion.func02(); } }*/ | cs |
익명클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package pack01;//익명클래스//객체 생성때 자식 클래스 없이 함수를 생성한다. abstract class Tiger {//객체 생성할때 )뒤에서 { 후에 ctrl space 하면 자동함수 생성 abstract void func01(); } // @ =annotation 어노테이션 public class Hello {//컴파일러에게 위의 함수와 아래의 함수가 같은지 확인명령 public static void main(String[] args) { Tiger tiger = new Tiger() { @Override void func01() { // TODO Auto-generated method stub } }; } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package pack01;//익명클래스//객체 생성때 자식 클래스 없이 함수를 생성한다. abstract class Tiger {//객체 생성할때 )뒤에서 { 후에 ctrl space 하면 자동함수 생성 abstract void func01(); } // @ =annotation 어노테이션 public class Hello {//컴파일러에게 위의 함수와 아래의 함수가 같은지 확인명령 public static void main(String[] args) { new Tiger() {//익명 객체 객체이름이 없음 @Override void func01() { // TODO Auto-generated method stub System.out.println("호랑이"); } }.func01();//한번더 못씀 즉석에서 사용 } } | cs |
익명객체
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package pack01;//익명클래스//객체 생성때 자식 클래스 없이 함수를 생성한다. abstract class Tiger {//객체 생성할때 )뒤에서 { 후에 ctrl space 하면 자동함수 생성 abstract void func01(); } // @ =annotation 어노테이션 public class Hello {//컴파일러에게 위의 함수와 아래의 함수가 같은지 확인명령 public static void main(String[] args) { Tiger t1 = new Tiger() {//익명 객체 객체이름이 없음 @Override void func01() { // TODO Auto-generated method stub System.out.println("호랑이"); } }; Tiger t2 = new Tiger() { @Override void func01() { // TODO Auto-generated method stub System.out.println("코끼리"); } };//한번더 못씀 즉석에서 사용 t1.func01(); t2.func01(); Tiger t3 = t1;//공유 t3.func01(); t3 = new Tiger() { @Override void func01() { // TODO Auto-generated method stub System.out.println("앵무새"); } }; t3.func01(); String s = new String(); s = new String(); s = new String();//객체가 다 다르다 s 3개 } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package pack01; abstract class Tiger{ abstract void func01(); void func03(){ System.out.println("앵무새"); } } public class Hello { public static void main(String[] args) { Tiger t1 = new Tiger() { @Override void func01() { // TODO Auto-generated method stub System.out.println("호랑이"); func02(); } void func02() { System.out.println("사과"); } }; t1.func01(); t1.func03(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | package pack01; abstract class Tiger{ public Tiger() { // TODO Auto-generated constructor stub } Tiger func01() { return this; } Tiger func02() { return this; } Tiger func03() { return this; } } public class Hello { public static void main(String[] args) { Tiger t1 = new Tiger() { @Override Tiger func01() { // TODO Auto-generated method stub System.out.println("호랑이"); return this; } @Override Tiger func02() { System.out.println("사자"); return this; } @Override Tiger func03() { System.out.println("앵무새"); return super.func03(); } }; new Tiger() { @Override Tiger func01() { // TODO Auto-generated method stub return super.func01(); } @Override Tiger func02() { // TODO Auto-generated method stub return super.func02(); } @Override Tiger func03() { // TODO Auto-generated method stub return super.func03(); } }; t1.func01().func01().func02().func03(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package pack01; abstract class Tiger{ abstract void func01(); } class Lion{ void func01(){ Tiger t1 = new Tiger() { @Override void func01() { // TODO Auto-generated method stub System.out.println("호랑이"); } }; t1.func01(); System.out.println("앵무새"); } } public class Hello { public static void main(String[] args) { Lion lion = new Lion(); lion.func01(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package pack01; abstract class Tiger{ abstract void func01(); } class Lion{ Tiger t1;//이렇게만 생성하면 t1.func01()은 출력안됨 Tiger t2 = new Tiger() { @Override void func01() { // TODO Auto-generated method stub System.out.println("호랑이"); } }; void func01() { t2.func01(); } }//overriding 한거지 Lion class함수 안에는 함는 것이다. public class Hello { //타입 = 대입 , 객체 = 공유 public static void main(String[] args) { Lion lion = new Lion(); lion.t2.func01(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package pack01; abstract class Tiger{//ctrl -= abstract void func01(); } class Lion{ void func01(Tiger tiger) {//객체 생성 tiger.func01(); } } public class Hello { //타입 = 대입 , 객체 = 공유 public static void main(String[] args) { Lion lion = new Lion(); lion.func01(new Tiger() {//코드 자체를 인수로 보낸다. @Override void func01() { // TODO Auto-generated method stub for (int i = 0; i < 10; i++) { System.out.println("5"+" * "+i+" = "+(5*i)); } } }); lion.func01(new Tiger() { @Override void func01() { // TODO Auto-generated method stub int s=0; for (int i = 0; i <= 10; i++) { s+=i; } System.out.println(s); } }); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | package pack01; interface Tiger{//추상함수만 있을때 = 인터페이스 int + ctrl + space //실행성코드는 x //abstract가 기본으로 깔려있다 안적어도 자동 void func01(); void func02(); void func03(); }//인터페이스를 상속할때는 implements(구현) class Lion implements Tiger{ @Override public void func01() {//interface = 구현할때 함수앞에 public가 꼭 필요 // TODO Auto-generated method stub System.out.println("하나"); } @Override public void func02() { // TODO Auto-generated method stub System.out.println("둘"); } @Override public void func03() { // TODO Auto-generated method stub System.out.println("셋"); } } public class Hello { public static void main(String[] args) { Lion lion = new Lion(); lion.func01(); lion.func02(); lion.func03(); Tiger t1 = new Tiger() { @Override public void func01() { // TODO Auto-generated method stub System.out.println("하나"); } @Override public void func02() { // TODO Auto-generated method stub System.out.println("하나"); } @Override public void func03() { // TODO Auto-generated method stub System.out.println("하나"); } }; t1.func01(); t1.func02(); t1.func03(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package a; class A{ } interface B{ } class C extends A{//1. class class } class D implements B{//2 class implements } interface E implements B{//3 interface interface } //interface class X public static void main(String[] args) { // TODO Auto-generated method stub } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | package pack; /*class 장기{ void play() { System.out.println("경기가 시작됩니다."); System.out.println("상대는 알파고입니다."); } } public class Hello { public static void main(String[] args) { 장기 a = new 장기(); a.play(); } }1번 인공지능이 업그레이드했을때 코드자체를 고쳐야된다. */ /*package pack; class 장기{ void play(알파고 alphago) { System.out.println("경기가 시작됩니다."); alphago.fight(); } void play(베타고 betago) { System.out.println("경기가 시작됩니다."); betago.fight(); } void play(감마고 gammago) { System.out.println("경기가 시작됩니다."); gammago.fight(); } } class 알파고{ void fight() { System.out.println("상대는 알파고입니다."); } } class 베타고{ void fight() { System.out.println("상대는 베타고입니다."); } } class 감마고{ void fight() { System.out.println("상대는 감마고입니다."); } } public class Hello { public static void main(String[] args) { 장기 a = new 장기(); a.play(new 알파고()); a.play(new 베타고()); a.play(new 감마고()); } }vr2 */ /*class 장기{ void play(AI ai) { System.out.println("경기가 시작됩니다."); ai.fight(); } } abstract class AI{ abstract void fight(); }//밑은 모두 extends AI class 알파고 extends AI{ void fight() { System.out.println("상대는 알파고입니다."); } } class 베타고 extends AI{ void fight() { System.out.println("상대는 베타고입니다."); } } class 감마고 extends AI{ void fight() { System.out.println("상대는 감마고입니다."); } } public class Hello { public static void main(String[] args) { 장기 a = new 장기(); a.play(new 알파고()); a.play(new 베타고()); a.play(new 감마고()); } }vr3 */ /*class 장기{ void play(AI ai) { System.out.println("경기가 시작됩니다."); ai.fight(); } void stop(AI ai) { System.out.println("휴식"); ai.stop(); } } abstract class AI{ abstract void fight(); abstract void stop(); }//밑은 모두 extends AI class 알파고 extends AI{ void fight() { System.out.println("상대는 알파고입니다."); } void stop() { System.out.println("알파고가 휴식을 취합니다"); } } class 베타고 extends AI{ void fight() { System.out.println("상대는 베타고입니다."); } void stop() { System.out.println("베타고가 휴식을 취합니다"); } } class 감마고 extends AI{ void fight() { System.out.println("상대는 감마고입니다."); } void stop() { System.out.println("감마고가 휴식을 취합니다"); } } public class Hello { public static void main(String[] args) { 장기 j = new 장기(); 알파고 a = new 알파고(); 베타고 b = new 베타고(); 감마고 c = new 감마고(); j.play(new 알파고()); j.play(new 베타고()); j.play(new 감마고()); j.stop(a); j.stop(b); j.stop(c); }//인수를 잘못던질수도있다. }*/ /*class 장기{ AI ai; 장기(AI ai){ this.ai = ai; } void play(AI ai) { System.out.println("경기가 시작됩니다."); ai.fight(); } void stop(AI ai) { System.out.println("휴식 시간입니다"); ai.stop(); } } abstract class AI{ abstract void fight(); abstract void stop(); }//밑은 모두 extends AI class 알파고 extends AI{ void fight() { System.out.println("상대는 알파고입니다."); } void stop() { System.out.println("알파고가 휴식을 취합니다"); } } class 베타고 extends AI{ void fight() { System.out.println("상대는 베타고입니다."); } void stop() { System.out.println("베타고가 휴식을 취합니다"); } } class 감마고 extends AI{ void fight() { System.out.println("상대는 감마고입니다."); } void stop() { System.out.println("감마고가 휴식을 취합니다"); } } public class Hello { public static void main(String[] args) { 알파고 a = new 알파고(); 베타고 b = new 베타고(); 감마고 c = new 감마고(); 장기 j1 = new 장기(a); 장기 j2 = new 장기(b); 장기 j3 = new 장기(c); j1.play(c); j2.stop(a); j3.stop(b); }//인공지능 하나씩 추가해주면됨 }*/ class 장기{ AI ai; 장기(AI ai){ this.ai = ai; } void play(AI ai) { System.out.println("장기 경기가 시작됩니다."); ai.fight(); } void stop(AI ai) { System.out.println("휴식 시간입니다"); ai.stop(); } } class 바둑{ AI ai; 바둑(AI ai){ this.ai = ai; } void play(AI ai) { System.out.println("바둑 경기가 시작됩니다."); ai.fight(); } void stop(AI ai) { System.out.println("휴식 시간입니다"); ai.stop(); } } interface AI{ void fight(); void stop(); }//밑은 모두 extends AI class 알파고 implements AI{ public void fight() { System.out.println("상대는 알파고입니다."); } public void stop() { System.out.println("알파고가 휴식을 취합니다"); } } class 베타고 implements AI{ public void fight() { System.out.println("상대는 베타고입니다."); } public void stop() { System.out.println("베타고가 휴식을 취합니다"); } } class 감마고 implements AI{ public void fight() { System.out.println("상대는 감마고입니다."); } public void stop() { System.out.println("감마고가 휴식을 취합니다"); } } public class Hello { public static void main(String[] args) { 베타고 b = new 베타고(); 장기 j2 = new 장기(b); 바둑 j1 = new 바둑(b); j2.play(b); j1.stop(b); j1.play(b); j1.stop(b); }//게임이라는 부모 만들고 그 밑에 게임들 넣기. } | cs |
728x90
'비트 장기 > JAVA' 카테고리의 다른 글
7/24 배움 (0) | 2018.07.24 |
---|---|
7/23 (exception 예외처리 try catch) (0) | 2018.07.23 |
7/20 복습 (0) | 2018.07.20 |
7/19 배움(상속, overriding, 다형성 ) (0) | 2018.07.19 |
7/18 복습 (0) | 2018.07.19 |
댓글