본문 바로가기

객체지향5

[자바의 정석] 07. 객체지향 프로그래밍Ⅱ(3) 6. 추상클래스(abstract class) 6.1 추상클래스란? 미완성(부족한)설계도, 완성되지 못한 채로 남겨진 설계도를 말한다. 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라,단지 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다. 추상 클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다.(다른 클래스 작성에 도움을 주기 위한 것) 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 새로운 클래스를 작성할 때 아무 것도 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나음 ex. Tv는 여러 모델이 있지만 이 들의 설계도는 90%가 동일할 것이다. .. 2023. 8. 3.
[자바의 정석] 07. 객체지향 프로그래밍Ⅱ(2) 4. 제어자(modifier) 4.1 제어자란? 제어자(modifier)는 클래스, 변수 또는 메서드의 선언부와 함께 사용되어 부가적인 의미를 부여한다. 접근제어자 public, protected, default, private protected > (defaulte) > private [대상에 따라 사용할 수 있는 접근 제어자] 대상 사용 가능한 접근자 클래스 public, (default) 메서드 public, protected, (default), private 멤버변수 public, protected, (default), private 지역변수 없음 ✏️public 은 파일명과 일치하는 클래스만 사용 가능함 접근 제어자를 이용한 캡슐화 클래스나 멤버, 주로 멤버에 접근 제어자를 사용하는 이유는 클.. 2023. 8. 2.
[자바의 정석] 07. 객체지향 프로그래밍Ⅱ(1) 1. 상속 두 클래스를 부모와 자식으로 관계를 맺어주는 것 1.1 상속의 정의와 장점 상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.(코드의 재사용) 상속을 통해서 클래스를 작성하다 보면 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 ‘extends’와 함께 써주기만 하면 된다. class Child extends Parent { } //새로 작성하려는 클래스 Child ( 자손클래스 ) .. 2023. 8. 1.
[자바의 정석] 06. 객체지향 프로그래밍Ⅰ(2) 4. 오버로딩(overloading) 4.1 오버로딩이란? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 4.2 오버로딩조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 반환 타입은 영향없다. 4.3 오버로딩 대표적인 예 오버로딩의 예로 가장 대표적인 것은 println메서드이다. println메서드를 호출할 때 매개변수로 지정하는 값의 타입에 따라서 호출되는 println메서드가 달라진다. 같은 일을 하지만 매개변수를 달리해야하는 경우에, 이와 같이 이름은 같고 매개변수를 다르게 하여 오버로딩을 구현한다. 4.4 오버로딩의 장점 기억하기 쉽고 이름도 짧게 할 수 있어서 오류의 가능성을 많이 줄일 수 있다. 메서드 기능 예측 가능, 메서드 이름 절약 가능 생성자 =.. 2023. 7. 31.
[자바의 정석] 06. 객체지향 프로그래밍Ⅰ(1) 1. 객체지향언어 1.2 객체지향언어 객체지향언어(설계) = 프로그래밍언어+객체지향 개념(규칙) 핵심개념 캡슐화 상속 추상화 다형성★ 갹체지향 언어의 주요 특징 코드의 재사용성이 높다. → 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다. → 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다. → 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다. 2. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 클래스 왜 필요? 객체(제품)를 생성하기 위해 객체(제품) 왜 필요? 객체를 사용하기 위해 객체(TV)를.. 2023. 7. 29.