JAVA/Language(50)
-
[Java] 7. 객체지향 프로그래밍 2 #3 package와 import
1. 패키지(pakcage) 패키지란 클래스의 묶음 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있음 패키지에는 서로 관련된 클래스끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있음 클래스의 실제 이름은 패키지명을 포함한 것 String 클래스 : java.lang.String 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리 패키지의 규칙 하나의 소스파일에는 첫번째 문장으로 단 한번의 패키지 선언만을 허용함 모든 클래스는 반드시 하나의 패키지에 속해야함 패키지는 점(.)을 구분자로 하여 계층 구조로 구성 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉터리 2. 패키지의 선언 package 패키지명; 패키지의 선..
2022.05.03 -
[Java] 7. 객체지향 프로그래밍 2 #2 오버라이딩(overriding)
1. 오버라이딩이란 무엇인가? 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 의미함 상속받은 메서드를 그대로 사용하지 않고 자식 클래스 자신에 맞게 변경해야 하는 경우 사용함 class Ponit{// 부모 클래스 int x, y; String getLocation(){ return "x : " + x + ", y : " + y; } } class Point3D extends Point{ int z; String getLocation(){// 오버라이딩 return "x : " + x + ", y : " + y + ", z : " + z; } } 2. 오버라이딩의 조건 자식 클래스에서 오버라이딩하는 메서드는 부모 클래스의 메서드와 다음이 같아야 합니다. 이름 매개변수 반환타입 3. 오버로딩과 ..
2022.05.03 -
[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