FALL in/G.MA' s 자바 썸네일형 리스트형 익명내부클래스 익명내부 클래스 익명내부클래스는 이름이 없는 내부클래스로, 이벤트처리시에 많이 사용한다. class A {void print(){System.out.println("내부 호출.");}}public class innerClassEx{ public static void main(String[] args) {innerClassEx i = new innerClassEx();A a = new A(){ // A클래스를 내부에서 객체화하여 print메소드 재정의.void print(){ System.out.println("내부에서 재정의.");}};a.print();} } 결과화면 내부에서 재정의. 더보기 인터페이스와 다중상속 인터페이스와 다중상속 자바에서는 다중상속이 불가능하다. 따라서 인터페이스라는것이 생겼다. 추상메소드와 비슷한 개념이지만 상수(변하지않는값)와 추상메소드만 정의 되어있다. implements 키워드를 사용하면된다. 인터페이스는 인터페이스를 상속할수있고, 다중인터페이스 구현이 가능하다. 따라서 implemets 키워드 뒤에 하나이상의 인터페이스가 올수있다. interface hello{ //인터페이스 정의.int a = 10;//상수는 가능. String name = "JiYeon"; //상수는 가능. //int b; -> 변수는 불가. public void hi(); //추상메소드 정의.public void say_hello(); //추상메소드 정의.} interface dog{ //인터페이스 정의.Str.. 더보기 추상클래스와 추상메소드 추상클래스와 추상메소드 추상메소드를 가지고있는 클래스를 추상클래스라고한다. 즉 구현은 되어있지않고 틀만 잡아놓은 클래스이다. abstract 키워드를 이용한다.일반 클래스에서 추상클래스를 상속받아 메소드 오버라이딩하여 정의가 가능하다. abstract class hello{ //접근제한자(public, protected, private)는 abstract키워드 앞에 올수있다 . int a = 10;abstract public void hi(String name);abstract public void say_hello();} public class abstractClassEx extends hello{ //추상클래 hello상속 public static void main(String[] args) {abs.. 더보기 오버라이딩 상속과 오버라이딩 클래스를 상속받는다는 것은 부모클래스의 속성이나 기능을 전달받는다는 것이다. 하위 클래스(자식)이 상위 클래스 (부모)를 상속받아 쓸수있다.extends 키워드를 사용하면된다.상속을 받아서 오버라이딩 즉, 메소드재정의가 가능하다. 상위클래스에 있는 메소드를 하위클래스에서 새롭게 정의하여 사용가능하다. 하위클래스에서 상위클래스의 멤버변수의 접근도 할수있다. 상속은 하나의 상위클래스만 받을수있다. 자바에서 다중상속은 불가능하다.따라서 extends 키워드에 클래스는 하나만 쓸수있다. class A { int n_a = 1; void F() { System.out.println("class A"); System.out.println("n_a = " + n_a); } } class B exte.. 더보기 오버로딩 오버로딩 자바에서 오버로딩(overloading)은 메소드의 다중정의를 말한다. 같은이름의 메소드라도 여러개의 정의가 가능하다. 주의할점은 매개변수의 개수나 데이터타입이 달라야한다.만약 매개변수의 개수와 그 데이터타입이 같다면 에러가난다. public class overloadingEx { String hello(String name) { return "hello "+ name; } String hello(String name,boolean capital) { if(capital) return "HELLO "+ name; return "hello "+ name; } void hello() { System.out.println("hello"); } void hello(int n) { for(int i=0; i 더보기 이전 1 다음