728x90 분류 전체보기207 [Java] 다형성/필드의 다형성,매개 변수의 다형성 더보기 Day15-2. 230518 다형성(Polymorphism) 필드의 다형성 다형성을 구현하는 기술적 방법 - 부모 타입으로 자동 변환 - 재정의된 메소드(오버라이딩) Tire 클래스> 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 package chap0607; public class Tire { //필드 int price; //가격 int maxRotation; //최대회전수 int accmulatedRotation; //누적회전수 String location;//타이어의 위치 //생성자 Tire(String location,int maxRotation){ this.location=location; this... 2023. 5. 18. [Java] 상속/타입변환(강제 타입 변환(casting),객체 타입 확인(instanceof)) 더보기 Day15-1. 230518 타입변환 강제 타입 변환(casting) - 부모 타입을 자식 타입으로 변환하는 것. - 자식 타입이 부모 타입으로 자동 타입 변환 후, 다시 자식 타입으로 변환할 때 강제 타입 변환을 사용 할 수 있음. 자식타입 변수 = (자식타입) 부모타입; Parent parent = new Child(); //자동 타입 변환 Child child = (Child) parent; //강제 타입 변환 객체 타입 확인(instanceof) - 처음부터 부모 타입을 생성된 객체는 자식 타입으로 변환 할 수 없음. 자식 타입 -> 부모 타입으로 변환 되어 있는 상태에서만 가능하기 때문에. Parent parent = new Child(); Child child = (Child) pare.. 2023. 5. 18. [Java] 상속/자동 타입 변환(Promotion) 더보기 Day14-3. 230517 타입변환과 다형성 다형성이란? 같은 타입이지만 실행 결과가 다양한 객체 대입(이용) 가능한 성질 - 부모 타입에는 모든 자식 객체가 대입 가능 -> 효과 : 객체 부품화 가능 자동 타입 변환(Promotion) - 상속관계에 있는 클래스 간에 프로그램 실행 도중에 자동적으로 타입변환이 일어나는 것 클래스 참조변수 = new 클래스(); 부모타입 참조변수 = 자식타입 부모클래스 참조변수 = new 자식 클래스(); - 클래스의 변환은 상속 관계에 있는 클래스 사이에서 발생. - 자식은 부모타입으로 자동 타입 변환 가능 - 자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급될 수 있다. - 바로 위의 부모가 아니더라도 상속 계층에서 상위 타입이라면 자동 타입.. 2023. 5. 17. [Java] 상속/부모 생성자 호출 super() 더보기 Day14-2. 230517 상속 부모 생성자 호출 - 자식 객체 생성할 때는 부모 객체 생성 후 자식 객체 생성 - 부모 생성자 호출 완료 후 자식 생성자 호출 완료 자식클래스(매개변수선언,...){ super(매개값,...); ... } super(매개값,...) - 매개값의 타입과 일치하는 부모 생성자 호출. - 부모 생성자가 없다면 컴파일 오류 발생 - 부모 클래스에 기본(매개변수 없는) 생성자가 없다면 super(매개값,...)을 명시적으로 호출해야 함. ※주의. 반드시 자식 생성자의 첫 줄에 위치해야함. 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 3.. 2023. 5. 17. [Java] 클래스/this() 더보기 Day14-1. 230517 생성자 다른 생성자 호출 : this() this() : 객체 자신의 또 다른 생성자를 호출할 때 사용.(동일 클래스 내에서 사용) - 생성자 오버로딩이 많아지면 생성자 간의 중복된 코드 발생. 초기화 내용이 비슷한 생성자들에서 이런 현상 발생. -> 초기화 내용을 한 생성자에 몰아 작성 -> 다른 생성자는 초기화 내용을 작성한 생성자를 this()로 호출. ※주의. 생성자의 첫 줄에서만 허용됨. 클래스([매개변수,...]){ this(매개변수,...,값,...); 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 4.. 2023. 5. 17. [Java] 클래스/생성자 더보기 Day13-4. 230516 생성자 생성자란? new 연산자에 의해 호출되어 객체의 초기화 담당 객체 초기화란? 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것. 생성자를 실행하지 않고는 클래스로부터 객채를 만들 수 없음. 기본 생성자 - 모든 클래스는 생성자가 반드시 존재. 하나 이상 가질 수 있음. - 생성자 선언을 생략하면 컴파일러는 중괄호{} 블록 내용이 비어 있는 기본 생성자 추가. [public] 클래스() { } - 클래스가 public class로 선언되면 기본 생성자도 public이 붙지만, 클래스가 public class 없이 class로만 선언되면 기본 생성자도 public이 붙지 않음. - Car 클래스를 설계할 때 생성자를 생략하면 기본 생성자가 자동 생.. 2023. 5. 16. [Java] 클래스/접근제한자 더보기 Day13-3. 230516 클래스 접근 제한자(Access Modifier) 클래스 및 클래스의 구성 멤버에 대한 접근을 제한하는 역할 접근이란? 클래스 및 인터페이스의 구성 멤버에 대한 접근을 제한하는 역할 public 접근 제한자 : 외부 클래스가 자유롭게 사용할 수 있도록 함. protected 접근 제한자 : (클래스 X) 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 함. private 접근 제한자 : (클래스 X) 모든 다른 클래스에서 접근 제한. 위 세 가지 접근 제한자가 적용되지 않으면 default 접근 제한을 가짐. default 접근 제한 : 같은 패키지에 소속된 클래스에서만 사용할 수 있음. / 다른 패키지에서 접근 제한. 클래스의 접근 제한 클래스 및 클래스의 구성 .. 2023. 5. 16. [Java] final,상수(static final) 더보기 Day13-2. 230516 final과 상수 final final class - 하위클래스가 존재할 수 없다. final field : - 최종적인 값을 갖고 있는 필드 - 선언 시 값을 초기화, 초기값은 변경할 수 없음. final method - 오버라이딩 할 수 없다. 상수(static final) - 불변의 값 - 상수는 static이면서 final 이어야 함. - static final 필드는 객체마다 존재하지 않고 클래스에만 존재. static final 타입 상수 = 초기값; - 상수 이름은 모두 대문자로 작성하는 것이 관례 static final double PI = 3.14159; static final double EARTH_RADIUS = 6400; 1 2 3 4 5 6 7 .. 2023. 5. 16. [Java] 상속(inheritance)/클래스 상속 더보기 Day13-1. 230516 상속(inheritance) 부모클래스 = 상위클래스 = supper클래스 자식클래스 = 하위클래스 = 파생클래스 = sub클래스 → 이미 잘 개발된 클래스를 재사용하기 때문에 중복되는 코드 줄여줌. → 유지 보수 편리성 제공, 객체 다형성 구현 가능 - 상속 대상 : 부모의 필드와 메소드 클래스 상속 class 자식클래스 extends 부모클래스{ //필드 //생성자 //메소드 } 상속 대상 제한 1. 여러 개의 부모 클래스를 상속할 수 없다. 2. 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외. 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외. 부모클래스 .. 2023. 5. 16. [Java] 패키지(import문),java.util 패키지(Date 클래스,Calendar 클래스) 더보기 Day12-2. 230515 패키지 패키지 선언 import문 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있다면, import문으로 해당 패키지의 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 알려줘야 함. * import문 작성 방법 import 상위패키지.하위패키지.클래스이름; import 상위패키지.하위패키지.*; import문은 패키지 선언과 클래스 선언 사이에 작성. 사용하고 하는 클래스들이 동일한 패키지 소속이라면 개별 import문을 작성하는 것보다 *를 이용해 해당 패키지에 소속된 클래스들을 사용할 것임을 알려주는 것도 좋은 방법. - ctrl + shift + o : import 패키지 단축키 java.util 패키지 Date 클래스 날짜와 시간을.. 2023. 5. 15. 이전 1 ··· 16 17 18 19 20 21 다음 728x90