본문 바로가기

Java5

[Java] 추상화 (feat. 추상 클래스) 추상화란? 기존 클래스의 공통부분을 뽑아 부모 클래스를 만드는 것을 의미한다. 상속 계층을 보면 내려갈수록 구체화되어 있고, 올라갈수록 추상화되어있다. 다시 말하자면, 내려갈수록 세분화되어 있고, 올라갈수록 공통요소만 남는다. 자바에서 추상화의 예로 추상 클래스, 추상 메서드, 인터페이스를 들 수 있다. 추상 클래스? : 추상 메서드를 가지고 있는 클래스. 미완성 설계도. 미완성이기 때문에 인스턴스를 생성할 수 없다. 추상 메서드? 선언부만 있고, 구현부는 없는 메서드. 미완성 메서드 자식 클래스에서 오버라이딩을 통해 구현부를 완성시켜야한다. class Marine{ int x, y; void move(int x, int y){...} void stop(){...} void stimPack(){...} .. 2022. 10. 15.
[Java] 다형성 다형성이란? 여러 형태의 데이터를 가질 수 있는 능력. 자바에서 다형성을 잘 나타낸 것은 부모 클래스 타입의 참조변수가 자식 클래스 타입의 인스턴스를 참조할 수 있다는 것이다. class Tv{ boolean power; int channel; void power(){power= !power;} void channelUp(){++channel;} void channelDown(){--channel;} void method(){...} } class SmartTv extends Tv{ String text; void caption(){...} void method(){...}// 오버라이드 } 다음과 같이 SmartTv 클래스는 Tv 클래스를 상속받았다. Tv t1 = new SmartTv(); Smart.. 2022. 10. 13.
[Java] 캡슐화 캡슐화란 쉽게 말해 데이터 감추기이다. 즉 외부로부터 접근을 막는 것을 의미한다. 자바에서는 접근 제어자를 통해 캡슐화를 한다. 접근 제어자의 종류 private : 클래스 내에서만 접근 가능 (default) : 같은 패키지 내에서만 접근 가능 protected : 같은 패키지, 자손클래스에서 접근 가능 public : 제한 없음 접근 제어자를 사용하는 이유 외부로부터 접근을 막기위해 외부에서는 접근하지 않고, 내부에서만 쓰이는 부분은 감추기 위해 접근 제어자를 사용함으로써 클래스 내부의 데이터를 보호할 수 있다. 멤버변수를 private으로 하여 외부로부터 접근을 막는다. 대신 멤버변수의 값을 읽는 getter와 멤버변수의 값을 변경하는 setter를 public으로 작성하여 간접적으로 멤버변수에 접.. 2022. 10. 11.
[Java] 인터페이스 인터페이스는 추상메서드의 집합이다. 인터페이스는 다음과 같은 특징을 가지고 있다. 인터페이스의 멤버변수는 public static final 이며, 생략할 수 있다. 인터페이스의 메서드는 public abstract 이며, 생략할 수 있다. (단, static 메서드와 디폴트 메서드는 예외) 인터페이스의 상속 인터페이스의 조상은 인터페이스만 가능하다. 다중 상속이 가능하다. 자바에서 클래스의 다중 상속이 안되는 이유는 부모 메서드의 충돌 문제 때문인데, 인터페이스는 메서드의 선언부만 있기때문에 다중 상속시 충돌 문제가 발생하지 않는다. 인터페이스의 구현 인터페이스의 추상 메서드를 완성을 해야 사용이 가능하다. 즉, 인터페이스는 그 자체로 인스턴스를 생성할 수 없고, 인터페이스를 구현한 클래스를 선언 후 .. 2022. 9. 24.
[Java] Eclipse 한글 깨짐 해결하기 Window - Preferences - Content Types Text 클릭 > Default encoding에 EUC-KR 입력 후 Update Java Class File 클릭 > Default encoding에 utf-8 입력 후 Update 2022. 6. 9.