본문 바로가기

분류 전체보기150

Java_Study 객체지향 프로그래밍 (오버라이딩) 오버라이딩이란? - 덮어쓰다 : 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것 오버라이딩의 조건 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 이름이 같아야 한다. 매개변수가 같아야 한다. 반환타입이 같아야 한다. 접근제어자와 예외는 접근제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다. * 접근제어자 접근범위 순 public, protected, (default), private 오버로딩 vs 오버라이딩 오버로딩 기존에 없는 새로운 메서드를 정의하는 것 오버라이딩 상속받은 메서드의 내용을 변경하는 것 super : 자손 클래스에서 조상.. 2022. 7. 4.
Java_Study 객체지향 프로그래밍 (상속) 상속의 정의와 장점 상속이란? : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. 장점 : 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 방법 : 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써준다. 조상 클래스 부모클래스, 상위클래스, 기반클래스 자손 클래스 자식클래스, 하위클래스, 파생된 클래스 - 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. - 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 자손 클래스의 인스턴스를 생성하면 조상 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다. 클래스간의 관계 - 포함관계 : 한 클래스의 멤버변수로 다.. 2022. 7. 3.
Java_Study 객체지향 프로그래밍 (변수의 초기화) 변수의 초기화 멤버변수와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. 멤버변수의 초기화 방법 명시적 초기화 생성자 초기화 블럭 명시적 초기화 : 변수를 선언과 동시에 초기화 하는 것 초기화 블럭 클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용 인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용 - 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행 - 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행 - 생성자 보다 인스턴스 초기화 블럭이 먼저 수행 class BlockTest { static { System.out.println("static { }"); } { System.out.println("{ }"); } public BlockTe.. 2022. 7. 1.
Java_Study 객체지향 프로그래밍 (생성자) 생성자란? : 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. : 따라서 인스턴스 변수의 초기화 작업에 주로 사용, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용 * 생성자가 갖는 몇 가지 특징만 제외하면 메서드와 다르지 않음 생성자의 조건 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 연산자 "new"가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다. * 예시코드 Card c = new Card(); /* 1. 연산자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성된다. 2. 생성자 Card()가 호출되어 수행된다. 3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변.. 2022. 7. 1.