일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- layout
- 메소드
- 어노테이션
- 기본
- Spring
- 예외처리
- oracle
- OGNL
- AWT
- JSP
- 생성자
- 국제화
- Java
- 안드로이드
- 배열
- 이클립스
- mybatis
- 전화걸기
- Eclips
- 클래스
- 에러페이지
- Graphic
- 오버로딩
- HTML
- JavaScript
- Menu
- paint
- 메서드
- Android
- struts2
- Today
- Total
목록전체 글 (572)
note
인터페이스 용도 1.구조화된 클래 사용(클래스 설계를 위해서) 2.표준화(메소드 생성을 강요하기 때문에 구조 동일화) 3.우회적 다중상속 지원 4.자료형으로 사용(서로 관계가 없는 클래스에 관계형성)
package com.inter2;//인터페이스 다중 상속 interface Inter1{ public abstract int getA(); //추상 메소드 } interface Inter2{ public int getB(); //추상 메소드(abstract 생략가능) } //인터페이스간 다중 상속 interface Inter3 extends Inter1,Inter2{ public int getDate(); //추상 메소드 } interface Inter4{ public int getC();//추상 메소드 } public class Round01 implements Inter3,Inter4{ //Round01에 인터페이스를 구현하면 //해당인터페이스의 추상 메소드는 반드시 일반 메소드로 구현되어야 함 p..
package com.inter;//추상 인터페이스 //다중상속이 불허하기 때문에 //인터페이스는 상속이 아닌 구현이라 표현되고 //다중상속이 가능하게 느껴짐(우회적 다중상속을 위해 사용함) //interface는 일반메소드를 가질 수 없음(자동적으로 추상메서드) interface A2{ void aaa();//default가 아니라 public으로 자동적으로 생성됨 public abstract void bbb();//원형 } //class면 extends interface는 implements class B2 implements A2{ /* default생성자로 호출시 에러남 항상 public * void aaa(){ System.out.println("aaa() 메소드"); }*/ //interfac..
package com.inter;//인터페이스 사용 //외형상으로 본다면 A1.class로 저장되어서 클래스로 보임 //인터페이스 //상수 , 추상 메서드 만 사용가능 interface A1{ int W = 10; static int X = 20; final int Y = 30; public static final int Z = 40; //원형 //생략한것도 상수로 인식함(쓴것은 변수여도) //인터페이스는 생성자가 없어서 객체생성이 안됨 } public class Round01 { public static void main(String[] args) { /*인터페이스는 객체 생성이 불가능 A1 a = new A1();*/ /*A1.W는 상수기 때문에 값을 변경할 수 없음 A1.W = 20;*/ Syste..
package com.annoy;//내부 클래스 class Inner6{ public void disp(){ System.out.println("disp() 메소드 호출"); } } public class InnerTest { public static void main(String[] args) { //익명 내부 클래스 만들기 전단계 class Inner extends Inner6{ public void disp(){//메소드 오버라이딩 System.out.println("자식 클래스의 disp()"); } } //Inner i = new Inner(); //i.disp(); //이것은 자주 사용할경우 //한번만 사용할경우 객체생성하자마자 호출하는게 낫다 new Inner().disp(); } } 자식 ..
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 v..
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 v..
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
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
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);*/ //상수는 호출 ..
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);*/ //상수는 호출 ..
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);*/ //상수는 호출 ..
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);*/ //상수는 호출 ..
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; //멤버 내부 클래스 c..
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; //멤버 내부 클래스 c..
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
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
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
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
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 i..