전체 글502 [Java] chap7 : 클래스의 관계 - 다형성(polymorphism)예제 다형성 예제 다형성 예제 1. 참조 변수의 형변환 2. 자손 타입의 객체는 부모타입의 참조변수로 참조가 가능하다 => 부모타입의 참조변수로 자손타입의 객체 참조시 부모타입의 멤버들만 호출 가능 3. 모든 클래스는 Object클래스를 상속 받는다. => 모든 클래스의 객체는 Object 타입의 참조변수로 참조가 가능하다. 단, Object클래스의 멤버만 호출 가능하다 📌 package chap7; class Bike2{ int wheel; Bike2(int wheel){ this.wheel = wheel; } void drive() { System.out.println("페달을 밟는다"); } void stop() { System.out.println("브레이크를 잡는다"); } } class AutoBi.. 2023. 4. 15. [Java] chap7 : 클래스의 관계 - 추상클래스 Shape 추상클래스 Shape 추상클래스 1. 추상메서드를 가질 수 있는 클래스. abstract예약어 사용함. 2. 객체화 불가 => 객체화는 상속을 통해서 자손클래스의 객체로 객체화 가능 3. 객체화되는 자손클래스는 반드시 추상메서드를 오버라이딩 해야함 4. 그 외는 일반 클래스와 동일 (생성자,멤버변수,멤버메서드, 다른 클래스를 상속 받을 수 있음,...) 5. 업무를 표준화 시킬 수 있음. 추상메서드 : 선언부만 존재함. 구현부가 없다. 자손클래스에서 반드시 오버라이딩을 하도록 강제함.(오버라이딩 필수) 📌 package chap7; abstract class Shape { //추상클래스 : 미완성 클래스? 객체화가 안됨 String type; Shape(String type){ this.type = ty.. 2023. 4. 15. [Java] chap7 : 클래스의 관계 - 제한자(Modifier), 접근제한자 제한자(Modifier) 제한자(Modifier) 같은 클래스 같은 패키지 상속된 개체 그외 접근 제한자 : private < (default) < protected < public (default) : 접근제한자 구현 안됨. 멤버의 접근의 허용범위를 설정해주는 제한자 그외 제한자 : static, abstract(추상클래스나 추산메서드를 만듬), final ================================================================================= - private 접근제한자 설정 : 동일 클래스내에서만 접근 허용 - default 접근제한자 : 동일 패키지 내에서만 접근 허용 - protected 접근제한자 : 상속된 개체에서만 접근 허용 - pu.. 2023. 4. 15. [Java] chap7 : 클래스의 관계 - Instanceof연산자 Instanceof연산자 instanceof 연산자 : 객체와 참조변수의 관계를 알려주는 연산자 if (참조변수 instanceof 객체자료형) true : 참조변수가 참조하는 객체는 객체자료형으로 형변환이 가능함 false : 참조변수가 참조하는 객체는 겍체자료형으로 형변환이 불가능함 📌 package chap7; class Super3{ int x = 10; void method() { System.out.println("Super3 메서드"); } } class Child3 extends Super3{ int x = 20; int y = 100; void method() { System.out.println("Child3 메서드"); } } public class InstanceofEx1 { pub.. 2023. 4. 15. [Java] chap7 : 클래스의 관계 - Pakage 패키지 예제 Pakage 패키지 예제 package 1. 클래스들의 모임. 2. 클래스의 이름은 패키지명을 포함한다. 3. package 설정은 파일의 처음 한번만 가능하다. => 하나의 파일에 구현된 모든 클래스는 같은 패키지의 클래스다. 4. 자바에서 패키지는 폴더로 구분된다. 클래스의 패키지명을 생략할 수 있는 경우 1. 같은 패키지에 속한 클래스의 이름은 패키지명을 생략 가능. 2. java.lang 패키지에 속한 클래스들은 패키지명을 생략 가능. 3. import 구문으로 설정된 클래스는 패키지명을 생략 가능. 📌 package chap7; import java.util.Date; //import chap7.test.Pack2; import chap7.test.*; //chap7.test 패키지에 속한 모든.. 2023. 4. 15. [Java] chap7 : 클래스의 관계 - 오버로딩, 오버라이딩 오버라이딩 오버라이딩 예제 오버라이딩 : 메서드의 재정의 1. 상속 관계에서 부모의 메서드를 자손클래스에서 재정의 함 2. 부모클래스 메서드의 선언부와 자손클래스의 메서드의 선언부가 같아야 함. 3. 접근제어자는 넓은 범위로 가능 4. 예외처리는 좁은 범위로 가능 오버로딩 오버로딩 : 메서드의 다형성 1. 동일한 같은 클래스내에 같은 이름을 가진 메서드가 존재 할 수 있다. 단 매개변수가 달라야 함 2. 리턴타입, 접근제어자, 예외처리 등은 상관 없다. 📌 package chap7; class Bike { int wheel; Bike(int wheel) { this.wheel = wheel; } String drive() { return "페달을 밟는다."; } String stop() { return .. 2023. 4. 15. [Java] chap7 : 클래스의 관계 - Super예약어, Super 생성자 super() 생성자 모든 클래스의 객체는 생성자 없이는 만들 수 없다. super() 생성자 : 부모클래스의 생성자 호출. 첫번째 줄애 구현해야 함 super 참조변수 : 부모클래스의 객체를 참조하는 변수 📌 package chap7; class Super { int x; Super() { this(0); } Super(int x) { // Super의 생성자 this.x = x; } } class Child extends Super { // 기본 생성자가 제공됨. 2023. 4. 15. [Java] chap7: 클래스의 관계 - 상속1 상속 예제 상속예제 1. 자손클래스의 객체를 생성시 부모객체를 먼저 생성함 2. 자손객체는 부모클래스의 멤버에 접근이 가능하다(단 접근제어자는 예외로 할 수 있다) 3. 클래스간의 상속은 단일 상속만 가능 클래스의 부모클래스는 한개만 가능하다. ****(인터페이스간의 상속은 다중 상속 가능) 4. 모든 클래스는 Object 클래스를 상속 받는다. 5. Object 클래스는 모든 클래스의 부모클래스이다. - 모든 객체는 Object 클래스의 객체를 포함하고 있다. - 모든 객체는 Object 클래스의 멤버에 접근이 가능하다. 📌 package chap7; class Phone extends Object { //Phone 클래스 구현 boolean power; int number; void power() {.. 2023. 4. 15. 이전 1 ··· 51 52 53 54 55 56 57 ··· 63 다음