JAVA/Language(48)
-
[Java] 7. 객체지향 프로그래밍 2 #1 상속(inheritance)
1. 상속의 정의와 장점 상속이란 무엇인가? 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것입니다. 상속을 통한 코드의 재사용 부모 클래스에 기능 또는 멤버를 추가하여 자식 클래스들마다 추가하지 않도록 함 상속의 특징 부모 클래스로부터 상속받은 자식 클래스는 부모 클래스의 멤버 변수와 메서드를 사용할 수 있음 만약 자식 클래스에서 부모 클래스의 메서드 이름과 동일한 메서드가 존재하면 자식 클래스의 메서드를 수행함 부모 클래스의 멤버 변수 또는 메서드의 접근제어자가 private라면 자식 클래스에서 참조가 불가능함 상속을 구현하는 방법, extends 키워드 class Child extends Parent{ // ... } 부모 클래스로부터 상속을 받는 방법은 자식 클래스 이름 옆에 "ex..
2022.04.29 -
[Java] 6. 객체지향 프로그래밍 1 #5 변수의 초기화
1. 변수의 초기화 변수를 선언과 동시에 값을 저장하는 것을 변수의 초기화라고 함 인스턴스의 멤버변수는 초기화하지 않고 사용해도 됨(자료형에 맞게 기본값으로 초기화가 이루어짐) 하지만 지역변수는 사용하기 전에 반드시 초기화해야함 class Car{ int door;// 인스턴스 변수 void method(){ int i;// 지역변수 int j = i;// error, 지역변수를 초기화하지 않고 사용 } } 멤버변수의 초기화 방법 명시적 초기화(explicit initialization) 생성자(constructor) 초기화 블럭(initialization block) 인스턴스 초기화 블럭 : 인스턴스 변수를 초기화 하는데 사용 클래스 초기화 블럭 : 클래스 변수(static 변수)를 초기화 하는데 사용..
2022.04.29 -
[Java] 6. 객체지향 프로그래밍 1 #4 생성자(Constructor)
5.1 생성자란? 생성자 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화' 메서드 인스턴스 생성시 인스턴스의 필드멤버에 값을 초기화할 수 있음 생성자의 조건 생성자의 이름은 클래스의 이름과 같아야함 생성자는 리턴 값이 없음 클래스이름(타입 변수명, 타입 변수명, ...){ // 인스턴스 변수의 초기화 } class Card{ String color; Card(){ } Card(String color){ this.color = color; } } 생성자의 특징 Card c = new Card(); 연산자 new에 의해서 메모리(heap)에 Card 클래스의 인스턴스가 생성됨 생성자 Card()가 호출되어 수행됨 연산자 new의 결과로, 생성된 Card 인스턴스의 주소가 반환되어 참조변수 c에 저장..
2022.04.28 -
[Java] 6. 객체지향 프로그래밍 1 #3 오버로딩(overloading)
1. 오버로딩이란 무엇인가? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 2. 오버로딩의 조건 메서드의 이름이 같아야함 매개변수의 개수 또는 타입이 달라야함 단, 반환타입은 오버로딩을 구현하는데 아무 영향을 주지 않음 3. 오버로딩의 예제 public class Calculator { public int add(int a, int b) { System.out.println("int add(int a, int b) -"); return a + b; } public long add(int a, long b) { System.out.println("long add(int a, long b) -"); return a + b; } public long add(long a, int b) { Syste..
2022.04.27 -
[Java] 6. 객체지향 프로그래밍 1 #2 변수와 메서드
1. 선언 위치에 따른 변수의 종류 클래스 변수, 인스턴스 변수, 지역 변수의 위치 변수의 종류와 특징 변수의 종류 선언위치 생성시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 인스턴스가 생성될 때 지역 변수 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 2. 클래스변수와 인스턴스변수 클래스 변수 : 모든 인스턴스가 하나의 저장공간을 공유하며 공통된 값을 가짐 인스턴스 변수 : 인스턴스마다 각기 다른 값을 가짐 3. 메서드(Method) 메서드란 무엇인가? 메서드는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것을 의미합니다. 메서드의 사용 이유 높은 재사용성 중복된 코드의 제거 프로그램의 구조화 기능들을 작업단위로 나누어 메서..
2022.04.26 -
[Java] 6. 객체지향 프로그래밍 1 #1 객체지향언어 & 클래스와 객체
1. 객체지향언어 1.1 객체지향언어의 역사 초창기에는 주로 과학실험이나 모의실험을 위해 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 노력함 객체지향이론의 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용'라는 것입니다. 객체지향이론은 상속, 캡슐화, 추상화 개념을 주심으로 점차 구체적으로 발전합니다. 1.2 객체지향언어 객체지향언어의 특징 코드의 재사용성이 높음 새로운 코드를 작성할때 기존의 코드를 이용하여 쉽게 작성할 수 있음 코드의 관리가 용이함 코드간의 관계를 이용해서 적은 노력으로 코드를 쉽게 변경할 수 있음 신뢰성이 높은 프로그래밍이 가능함 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 ..
2022.04.26