'Java > Abstract Class' 카테고리의 다른 글
추상 메소드 (0) | 2012.04.11 |
---|---|
추상클래스 기본 (0) | 2012.04.11 |
추상 클래스 예제 (0) | 2012.04.11 |
추상 메소드 (0) | 2012.04.11 |
---|---|
추상클래스 기본 (0) | 2012.04.11 |
추상 클래스 예제 (0) | 2012.04.11 |
package com.abs; abstract class AbsEx1{ int a = 100; public int getA(){ return a; } //추상메소드 abstract public String getStr(); abstract public int getB(); } abstract class AbsEx2 extends AbsEx1 { String str = "신세계"; //AbsEx1의 추상 메서드 getStr()를 구현 public String getStr(){ return str; } //추상메소드 abstract public int getC(); } public class Exten02 extends AbsEx2{ public int getB(){ return 100; } public int getC(){ return 200; } public static void main(String[] args){ //추상클래스는 객체 생성 불가 //AbsEx2 ab = new AbsEx2(); Exten02 e = new Exten02(); } }
예비 (0) | 2012.04.11 |
---|---|
추상클래스 기본 (0) | 2012.04.11 |
추상 클래스 예제 (0) | 2012.04.11 |
package com.abs;//추상클래스 기본 abstract class A{//추상 클래스 (미완성된 클래스) //추상 클래스는 일반 클래스에 구현되어 사용(부모 역할) private int x; public void setX(int x){ this.x = x; } //추상메소드 public abstract void aaa(); } class B extends A{ //A클래스의 추상메소드 -> 일반 메소드로 구현함 //재정의 문법을 적용 public void aaa(){ System.out.println("aaa() 메소드"); } } public class Exten01 { public static void main(String[] args){ /*추상 클래스는 객체 생성 불가 A ap = new A();*/ B bp = new B(); } }
예비 (0) | 2012.04.11 |
---|---|
추상 메소드 (0) | 2012.04.11 |
추상 클래스 예제 (0) | 2012.04.11 |
package com.abs;//추상 클래스 기본틀 //추상 클래스 public abstract class Unit { protected String name; protected int energy; public int getEnergy(){ return energy; } //추상 메서드 abstract public void decEnergy(); // 에너지 소모 }
package com.abs; public class Zerg extends Unit{ boolean fly; public Zerg(String name, boolean fly){ this.name = name; this.energy = 100; this.fly = fly; } //unit의 추상메서드 구현 public void decEnergy(){ energy -= 6; } }
package com.abs; public class Protoss extends Unit{ boolean fly; public Protoss(String name, boolean fly){ this.name = name; this.energy = 100; this.fly = fly; } //unit의 추상메서드 구현 public void decEnergy(){ energy--; } }
package com.abs; public class Terran extends Unit{ boolean fly; public Terran(String name, boolean fly){ this.name = name; this.energy = 100; this.fly = fly; } //unit의 추상메서드 구현 public void decEnergy(){ energy -= 3; } }
package com.abs; public class UnitTest { public static void main(String[] args){ Zerg z1 = new Zerg("승리",false); z1.decEnergy(); System.out.println("z1의 energe : "+z1.getEnergy()); Protoss p1 = new Protoss("행복",true); p1.decEnergy(); System.out.println("p1의 energe : "+p1.getEnergy()); Terran t1 = new Terran("파도",false); t1.decEnergy(); System.out.println("t1의 energe : "+t1.getEnergy()); } }
z1의 energe : 94
예비 (0) | 2012.04.11 |
---|---|
추상 메소드 (0) | 2012.04.11 |
추상클래스 기본 (0) | 2012.04.11 |
내부 클래스 호출에 대해서 (0) | 2012.04.11 |
---|---|
내부 클래스 static (0) | 2012.04.11 |
내부 클래스 지역변수 상수 호출 (0) | 2012.04.11 |
내부 클래스 (0) | 2012.04.11 |
클래스와 상수 (0) | 2012.04.11 |
package com.inner2;//내부 클래스 원하는 변수 출력하기 class Outer2{ int a = 100; //멤버 내부 클래스 class Inner2{ int a = 200; public void method1(){ int a = 300; System.out.println("a = "+a); System.out.println("this.a = "+Inner2.this.a); System.out.println("this.a = "+this.a); System.out.println("Outer2.this.a = "+ Outer2.this.a); //위치가 명확하지 않으면 위치를 써놓고 this를 쓰는것이 좋음 } } } public class InnerTest2 { public static void main (String[] args){ Outer2.Inner2 oi = new Outer2().new Inner2(); oi.method1(); } }
a = 300
예비 (0) | 2012.04.11 |
---|---|
내부 클래스 static (0) | 2012.04.11 |
내부 클래스 지역변수 상수 호출 (0) | 2012.04.11 |
내부 클래스 (0) | 2012.04.11 |
클래스와 상수 (0) | 2012.04.11 |
package com.inner4;//내부 클래스 static 알아보기 public class InnerEx { //내부 클래스가 static 변수를 갖고 있으면 //클래스를 static으로 지정해야 함 static class StaticInner{ int iv = 200; static int cv = 300; } public static void main(String[] args){ InnerEx.StaticInner i = new InnerEx.StaticInner(); System.out.println(i.iv); System.out.println(InnerEx.StaticInner.cv); } }
200
300
예비 (0) | 2012.04.11 |
---|---|
내부 클래스 호출에 대해서 (0) | 2012.04.11 |
내부 클래스 지역변수 상수 호출 (0) | 2012.04.11 |
내부 클래스 (0) | 2012.04.11 |
클래스와 상수 (0) | 2012.04.11 |
package com.inner3;//내부 클래스 지역변수 상수 호출 public class InnerTest { int a = 100; public void innerMethod(){ int localVar = 500; //지역변수 final int num =100; //상수 class Inner{ int b = 200; public void getDate(){ //InnerTest의 멤버변수는 호출 가능 System.out.println("a = "+a); //Inner의 멤버변수는 당연히 호출가능 System.out.println("b = "+b); /*내부 클래스가 포함된 메소드의 지역변수 호출불가 System.out.println("lovalVar = "+localVar);*/ //상수는 호출 가능 System.out.println("num = "+num); } } //메모리에 올리기 Inner i = new Inner(); i.getDate(); } public static void main(String[] args){ InnerTest i = new InnerTest(); i.innerMethod(); } }
a = 100
내부 클래스 호출에 대해서 (0) | 2012.04.11 |
---|---|
내부 클래스 static (0) | 2012.04.11 |
내부 클래스 (0) | 2012.04.11 |
클래스와 상수 (0) | 2012.04.11 |
상수 final (0) | 2012.04.11 |
package com.inner;//내부 클래스 class Outer{ int a =100; //멤버 내부 클래스 class Inner{ int b = 200; } } public class InnerTest { public static void main(String[] args){ Outer ot = new Outer(); System.out.println("ot = "+ot); System.out.println(ot.a); //내부 클래스 객체 생성 Outer.Inner oi = ot.new Inner(); System.out.println("oi = "+oi); System.out.println(oi.b); } }
class Outer{ //멤버 변수 int a = 100; //멤버 내부 클래스 class Inner{ int b = 200; public void make(){ //멤버 내부 클래스는 내부 클래스를 포함하는 \ //클래스(Outer)의 멤버변수 호출 가능 System.out.println("a = "+a); System.out.println("B = "+b); } } } public class InnerTest { public static void main(String[] args){ /*Outer ot = new Outer(); Outer.Inner oi = ot.new Inner(); oi.make();*/ Outer.Inner oi = new Outer().new Inner(); oi.make(); } }
package com.inner3; public class LocalInner { public void innerTest(){ //로컬 내부 클래스 class Inner{ public void getDate(){ System.out.println("Local 내부 클래스 호출!!"); } } Inner i = new Inner(); i.getDate(); }//innerTest()끝 public static void main(String[] args){ LocalInner outer = new LocalInner(); outer.innerTest(); } }
내부 클래스 호출에 대해서 (0) | 2012.04.11 |
---|---|
내부 클래스 static (0) | 2012.04.11 |
내부 클래스 지역변수 상수 호출 (0) | 2012.04.11 |
클래스와 상수 (0) | 2012.04.11 |
상수 final (0) | 2012.04.11 |
package com.finalex; class Me{ int var = 100; //메소드에 final을 지정하면 해당 메소드는 상속되지만 //자식 클래스에서 재정의 되지 않음 public final void setVar(int var){ this.var = var; } } public class MeEx extends Me{ /*부모 클래스의 setVar가 final 이기 때문에 재정의 불가능 public void setVar(int var){ System.out.println(var); }*/ public static void main(String[] args){ MeEx m = new MeEx(); m.setVar(300); System.out.println(m.var); } }
300
내부 클래스 호출에 대해서 (0) | 2012.04.11 |
---|---|
내부 클래스 static (0) | 2012.04.11 |
내부 클래스 지역변수 상수 호출 (0) | 2012.04.11 |
내부 클래스 (0) | 2012.04.11 |
상수 final (0) | 2012.04.11 |
package com.finalex; class FinalMember{ final int A = 10;//상수 (대문자가 좋음)(초기화) public void setA(int a){ //상수는 프로그램에서 처음 사용할때 초기화는 가능하지만 //한번 초기화한 후 변경 불가능 //this.A = a; } } public class FinalTest01 { public static void main(String[] args){ FinalMember ft = new FinalMember(); ft.setA(100); System.out.println(ft.A); } }
10
내부 클래스 호출에 대해서 (0) | 2012.04.11 |
---|---|
내부 클래스 static (0) | 2012.04.11 |
내부 클래스 지역변수 상수 호출 (0) | 2012.04.11 |
내부 클래스 (0) | 2012.04.11 |
클래스와 상수 (0) | 2012.04.11 |
super 연습문제 (에러 찾기) (0) | 2012.04.11 |
---|---|
super로 은닉된 슈퍼클래스의 멤버변수 접근하기 (0) | 2012.04.11 |
Super 기본 정수 (0) | 2012.04.11 |
메소드 오버라이딩 super 참조 변수 (0) | 2012.04.11 |
메소드 오버라이딩 (0) | 2012.04.11 |
package com.over3;//super에러 해결하기 public class PointTest { public static void main(String[] args){ Point3D p3 = new Point3D(1,2,3); System.out.println(p3.getLocation()); } } //Point(){} class Point{ int x; int y; String getLocation(){ return "x :"+x+", y :"+y; } } class Point3D extends Point{ int z; Point3D(int x, int y, int z){ /*2.에러 해결방법 부모 클래스에 default 생성자가 없고 인자를 전달해야 하는 생성자만 있을경우 명시적으로 super(인자)를 이용해서 부모클래스 생성자 호출 super(x,y);*/ this.x = x; this.y = y; this.z = z; } String getLocation(){//오버라이딩 return "x : " +x+", y :"+y+"m z :" + z; } }
x : 1, y :2m z :3
예비 (0) | 2012.04.11 |
---|---|
super로 은닉된 슈퍼클래스의 멤버변수 접근하기 (0) | 2012.04.11 |
Super 기본 정수 (0) | 2012.04.11 |
메소드 오버라이딩 super 참조 변수 (0) | 2012.04.11 |
메소드 오버라이딩 (0) | 2012.04.11 |
package com.over2;//super로 은닉된 슈퍼클래스의 멤버변수 접근하기 class Point2D{ protected int x=10; //은닉 변수 protected int y=20; //혹은 쉐도우 변수 } class Point3D extends Point2D{ protected int x=40; //슈퍼 클래스에 존재하는 멤버변수를 protected int y=50; //서브 클래스에 다시 한번 정의함 protected int z=30; public void print(){ System.out.println(x+", "+y+", "+z); } public void print02(){ System.out.println(super.x+", "+super.y+", "+z); } } public class SuperTest04 { public static void main(String[] args){ Point3D pt = new Point3D(); pt.print(); pt.print02(); } }
40, 50, 30
예비 (0) | 2012.04.11 |
---|---|
super 연습문제 (에러 찾기) (0) | 2012.04.11 |
Super 기본 정수 (0) | 2012.04.11 |
메소드 오버라이딩 super 참조 변수 (0) | 2012.04.11 |
메소드 오버라이딩 (0) | 2012.04.11 |
package com.over2;//super 기본정보 class Parent2{ int a=100; public Parent2(int a){ this.a = a; } } class Child2 extends Parent2{ int b=200; public Child2(){ //부모 클래스가 default 생성자만 사용할 경우 //super();//명시하지는 않지만 암묵적으로 //부모 클래스의 default 생성자 호출 //부모 클래스가 default 생성자를 사용하지 않고 //인자가 전달되는 생성자를 명시했을때 super(200); } } public class Exten03 { public static void main(String[] args){ Child2 ch = new Child2(); System.out.println(ch.a); System.out.println(ch.b); } }
200
200
예비 (0) | 2012.04.11 |
---|---|
super 연습문제 (에러 찾기) (0) | 2012.04.11 |
super로 은닉된 슈퍼클래스의 멤버변수 접근하기 (0) | 2012.04.11 |
메소드 오버라이딩 super 참조 변수 (0) | 2012.04.11 |
메소드 오버라이딩 (0) | 2012.04.11 |