///////
Search
🐳

김진아

생성자

생성자는 인스턴스 초기화 메서드다. 연산자 new 결과로 인스턴스를 만들 때 생성자를 실행하여 인스턴스의 값을 초기화한다. 생성자명은 클래스명과 같고 리턴타입이 없다.(하지만 void를 쓰지 않는다) 클래스에 생성자 함수가 없으면 기본 생성자(default)를 자바 컴파일러가 자동으로 만든다.
클래스명() { }

디폴트 생성자

모든 클래스에는 생성자를 하나라도 만들었다면 디폴드 생성자를 꼭 정의해줘야 한다. 개발자가 생성자를 정의하지 않으면 컴파일러가 기본생성자를 만든다.
class 클래스명 ... class 클래스명() { // 기본 생성자 }

this

this는 컴파일러에서 자동으로 생성되는 현재 객체 자신을 가리키는 참조변수다. (생성자에서 매개변수와 필드이름의 혼동을 막기 위해 사용)
public class Circle{ int radius public Circle(int radius) { this.radius = radius; } double getArea() { return. 3.14 * radius * radius; } }
Plain Text
복사

this()

this()함수는 같은 클래스의 다른 생성자를 호출한다.(사용 시 가장 위에서 사용한다)
class Person{ String name; String passport = "0000000"; public Person(String name) { this.name = name; } public Person(String name, String passport) { this(name); //this()로 다른 생성자를 호출한다 this.passport = passport; } } public class Switch { public static void main(String[] args) { Person kim = new Person("김말똥"); Person hong = new Person("홍길동", "0000-0000"); } }
Plain Text
복사

상속

자식 클래스가 부모 클래스(기존클래스)를 재사용하는 것으로 코드의 중복을 방지한다. extends 로 상속한다. 자식 클래스는 부모 클래스의 모든 멤버를 상속 받는다. 부모클래스의 변경은 자식클래스에 영향을 미치지만 자식클래스의 변경은 부모클래스에 아무런 영향을 미치지 않는다.
자식(상위/super)클래스, 부모(하위/sub)클래스
class 자식클래스 extends 부모클래스 { }

접근 제한자

접근제한자(Access Modifier)는 외부로부터 데이터를 보호하기 위해 사용하고 외부로부터의 접근을 제한한다.
private: 같은 클래스 내에서만 접근이 가능하다.
default: 같은 패키지 내에서만 접근이 가능하다.
protected: 같은 패키지 내에서, 그리고 다른 패키지의 자식 클래스에 접근이 가능하다.
public: 접근 제한이 전혀 없다.

클래스의 접근 제한자

public: 어디서든 인스턴스 생성이 가능하다.
default: 동일 패키지로 묶인 클래스 내에서만 인스턴스 생성을 허용한다. (다른 패키지에서는 인스턴스 생성 불가능)
```java import edu.lion.car.Hcar; import edu.lion.car.Scar; //컴파일 에러 public class JvmTest { public static void main(String[] args) { Hcar hcar = new Hcar(); Scar scar = new Scar(); // 에러. 패키지에서 default로 클래스를 정의하면, 다른 패키지에서 인스턴스를 만들 수 없다. } } ```
Plain Text
복사

변수 & 메서드 접근 제한자

클래스 : public, default
변수, 메서드 : public, protected, default, private

주의사항

1.
하나의 자바 파일에 한개의 public class만 들어간다.
2.
생성자도 메소드다 (접근 제한자를 올바르게 설정해야 객체를 만들 수 있다)

정보은닉

변수에 다이렉트로 접근하지 않도록 문법적으로 제한한다. 메소드를 통해서 값을 설정하도록 하여 정보를 보호한다. (실무에서는 모든 변수를 private으로 선언한다) 모든 변수에 대해서 getter, setter 함수를 만들어서 값을 읽고 쓴다.
getter, setter 함수 설정 소스코드 마우스 오른쪽 클릭 > source > Generate Getters and Setter

패키지

서로 관련된 자바 클래스와 인터페이스의 묶음이다. 인터넷 도메인 이름의 역순으로 이름을 구성한다. 콤마(.)로 패키지를 구분한다.
package edu.lion.prj class A{ }
Plain Text
복사

패키지가 필요한 이유

1.
같은 위치에 똑같은 이름의 클래스 파일(.java)을 둘 수 없다.
2.
다른 위치에 있는 똑같은 이름의 클래스를 실행하면 동일한 이름의 인스턴스가 생성되어 충돌이 일어나기 때문이다.