본문 바로가기

프로그래밍/JAVA47

자바의 정석 기초 (인터페이스의 장점) 남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 인터페이스의 장점 - 두 대상(객체) 간의 '연결, 대화, 소통' 을 돕는 '중간 역할'을 한다. - 선언(설계)과 구현을 분리시킬 수 있게 해준다. - 개발 시간을 단축할 수 있다. - 변경에 유리한 유연한 설계가 가능하다. - 표준화가 가능하다. - 서로 관계없는 클래스들을 관계를 맺어 줄 수 있다. 직접적인 관계의 두 클래스 (A - B) class A { public void methodA (B b){ b.methodB(); } } class B { public void methodB(){ System.out.println("methodB()"); } } class InterfaceTest{ public stat.. 2020. 7. 19.
자바의 정석 기초 ( 인터페이스 / 인터페이스 추상클래스 공통점 & 차이점 ) 남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 인터페이스 (interface) - 추상메서드의 집합 - 구현된 것이 전혀없는 설계도. 껍데기 (모든 멤버가 public) interface 인터페이스이름 { public static final 타입 상수이름 = 값; // 상수라서 final 붙음. 인터페이스는 변수 X , IV X, CV X public abstract 메서드이름 (매개변수목록); // 모든 멤버가 public } 인터페이스 상속 - 인터페이스의 조상은 인터페이스만 가능 (Object가 최고 조상 X ) - 다중 상속이 가능 (추상메서드는 충돌해도 문제 없음 ) / 자바는 단일 상속만 가능 interface Fightable extends Movabl.. 2020. 7. 15.
자바의 정석 기초 ( 추상클래스 (abstract class) / 추상메서드 (abstract method) ) 남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 추상클래스 (abstract class) - 미완성 설계도. 미완성 메서드를 갖고 있는 클래스 abstract class Player{ abstract void play(int pos); // 추상 메서드 몸통{}이 없는 미완성 메서드 abstract void stop(); } - 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가 Player p = new Player() ; // 에러 - 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능 class AudioPlayer extends Player{ void play(int pos) { 내용작성 } void stop() { 내용작성} } AudioPla.. 2020. 7. 14.
자바의 정석 기초 ( 매개변수 다형성 / 하나의 배열에 여러 종류 객체 저장 ) 남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 매개변수의 다형성 - 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손 타입의 인스턴스를 넘겨줄 수 있다. - 조상타입의 배열에 자손들의 객체를 담을 수 있다. * 다형성의 장점 1. 다형적 매개변수 2. 하나의 배열로 여러종류 객체 다루기 다형적 매개변수 예제) 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 class Product{ int price; int bonusPoint; .. 2020. 7. 12.
자바의 정석 기초 ( 참조변수의 형변환 / instanceof 연산자 ) 남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 참조변수의 형변환 - 사용할 수 있는 멤버의 갯수를 조절하는 것 - 조상 자손 관계의 참조변수는 서로 형변환 가능 * 객체가 없어도(NULL) 형변환은 가능하지만, 실행하면 NullPointException 발생 예제 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 class Ex7_7 { public static void main(String[] args) { // TODO Auto-generated method stub Car car = null; FireEngine fe = new FireEngine(); F.. 2020. 7. 12.
자바의 정석 기초 ( 캡슐화 / 다형성) 남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 캡슐화와 접근제어자 접근제어자를 사용하는 이유? - 외부로부터 데이터를 보호하기 위해서 - 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서 다형성 (polymorhphism) - 여러 가지 형태를 가질 수 있는 능력 - 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 - 자손 타입의 참조 변수로 조상 타입의 객체를 가리킬 수 없다. 조상 자손 Tv t = new SmartTv(); // Tv와 SmartTv 타입 불일치 SmartTv s = new Tv(); // 에러 자손 조상 class Tv{ boolean Power; int channel; void power(){power = !power;} v.. 2020. 7. 12.