전체 글

전체 글

    [JAVA 복습] 캡슐화와 접근 제어자

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 제어자의 특징 제어자는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 제어자는 클래스, 변수, 메서드의 선언부에 사용되며 부가적인 의미를 부여한다. 하나의 대상에 대해 여러 제어자를 조합할 수 있으나 접근 제어자는 하나만 선택해서 사용할 수 있다. 1. static 제어자 static 제어자는 멤버변수, 메서드, 초기화 블럭에 사용할 수 있다. 멤버변수와 메서드에 static 제어자가 붙었다면 전역 변수, 전역 메서드로 클래스 내부 어디서든 사용할 수 있다. 전역 변수는 인스턴스를 생성하지 않고도 사용할 수 있고 클래스가 메모리에 로드될 때 생성된다. 전역 메서드 또한 인스턴스를..

    [JAVA 복습] 참조변수 super와 조상의 생성자 super()

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 참조변수 super super는 자손이 조상으로부터 상속받은 멤버를 참조하는데 사용되는 변수 멤버변수와 지역변수의 이름이 같을 때 this로 구별했듯이, 상속받은 멤버와 자신의 멤버가 이름이 같을 때 super로 구별할 수 있다. 참조변수 super 사용 코드 예제 class Ex7_2 { public static void main(String args[]) { // 인스턴스 생성 시 조상의 멤버도 함께 생성 Child c = new Child(); c.method(); } } // 조상 클래스 Parent Class Parent { int x = 10; } // Parent를 상속받는..

    [JAVA 복습] 상속에 대해

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 상속의 특징 Java 에서는 다중 상속 대신 단일 상속만을 허용한다. 다중 상속을 허용하지 않기 때문에 클래스 간의 관계가 보다 명확하고 코드를 더욱 신뢰할 수 있는 특징이 있다. 자손 클래스는 조상 클래스의 모든 멤버를 상속받는다. - 다만 생성자는 상속되지 않는다. 자손 클래스의 멤버 개수는 조상 클래스의 멤버 개수와 같거나 그보다 많다. 상속을 사용하는 이유 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속을 통해 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스 생성이 가능하다. 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. > ..

    [JAVA 복습] 생성자 this() 와 객체 자신을 가리키는 참조변수 this

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 생성자 호출하기 생성자 또한 서로 호출이 가능하지만 조건 두 가지를 충족시켜야 한다. 1. 생성자 이름으로 클래스 이름을 쓰는 대신 this를 사용한다, 2. 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다. - 첫 줄에 적어야 하는 이유는, 생성자의 초기화 작업 도중 다른 생성자를 호출한다면 초기화 작업이 무의미해질 수 있기 때문이다. 생성자 호출 오류 코드 첫 째, 다른 생성자 호출 시 두 번째 줄에서 호출 둘 째, 클래스 이름 대신 this를 사용하지만 Car을 사용해 호출 class Car { String color; String gearType; i..

    [JAVA 복습] 기본 생성자와 매개변수가 있는 생성자

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 생성자(constructor) 란 ? 생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. 생성자는 특별한 메서드라고 할 수 있는데, 다음과 같은 특징을 지닌다. 1. 생성자 역시 메서드처럼 클래스 내부에 선언된다. 2. 생성자의 이름은 클래스의 이름과 동일해야 한다. 3. 생성자는 return 값이 없다. (void가 생략되는 것) 4. 생성자 또한 오버로딩이 가능하다. 5. 매개변수가 없거나 있을 수 있다. 기본 생성자 클래스 내부에 아무런 생성자도 없다면, 컴파일러가 제공해주는 생성자이다. 인스턴스 초기화 작업이 필요없다면 기본 생성자를 사용하자. 클래스 내부에 하나..

    [JAVA 복습] 오버로딩 / 오버라이딩 비교

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 요약) 오버로딩 - 기존에 없는 새로운 메서드를 같은 이름으로 여러 개 정의하는 것 오버라이딩 - 상속받은 메서드의 내용을 새롭게 변경하는 것 오버로딩(overloading) 이란 ? 매개변수의 개수, 타입에 따라 이름이 같은 메서드 여러 개를 사용하는 기술 메서드 오버로딩과 생성자 오버로딩이 있다. 오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수가 다르거나, 타입이 하나라도 달라야 한다. 3. 반환(Retrun) 타입은 오버로딩에 영향을 줄 수 없다. (관계 없음) 오버로딩 예제 소스 - 오버로딩 된 add() 메서드 중 매개변수 개수와 타입이 일치되는 메서드가..

    [JAVA 복습] 기본형, 참조형 매개변수의 비교

    - 자바의 정석 (기본편)을 참고했습니다. - 복습을 위한 게시글입니다. - 소스에 오타가 있을 수 있습니다. ^^:; 기본형 매개변수 예제 소스 기본형 매개변수는 값을 바꾸지 못하고 오직 읽기만 할 수 있다. change() 메서드 실행 이후 받아온 매개변수 값을 1000으로 바꿨지만, 원본이 아닌 복사본의 값이 변경된 것이므로 d.x의 값은 여전히 10으로 찍혀나오는 것을 확인할 수 있다. public class Ex6_6 { public static void main(String args[]){ Data d = new Data(); d.x = 10; System.out.println("main x는 ?" + d.x); change(d.x); System.out.println("After change..