728x90
[기본 개념] 2 | (5.1) 다형성, 참조변수의 형변환1> 다형성이란?2> 참조변수의 형변환3 instanceof연산자4 참조변수와 인스턴스의 연결5 매개변수의 다형성6 여러 종류의 객체를 배열로 다루기1. 다형성이란? 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. class Tv { boolean power ; // 전원 상태(on / off) int channel ; // 채널 ..
[기본 개념] 2 | (4.1) static, final, abstract, 접근 제어자1> 제어자란?2> static - 클래스의, 공통적인3> final - 마지막의, 변경될 수 없는4> abstract - 추상의, 미완성의5> 접근제어자(access modifier)6> 제어자(modifier)의 조합1. 제어자란? 제어자란 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여하는 것이다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 public, protected, default, private그 외 static, final, abstract, native, transient, synchronized, volatil..
[기본 개념] 2 | (3.1) Package, Import 문1> 패키지(package)2> 패키지의 선언3> import문4> import문의 선언5> static import문1. 패키지(package) 패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 지금까지는 단순히 클래스 이름으로만 구분했지만, 사실 클래스의 실제 이름(full name)은 패키지명을 포함한 것이다. 예..
[기본 개념] 2 | (2.1) 오버라이딩, Super( )1> 오버라이딩이란?2> 오버라이딩의 조건3> 오버로딩 vs 오버라이딩4> super5> super( ) - 조상 클래스의 생성자1. 오버라이딩이란? 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 자손 클래스 자신에 맞게 변경해야 하는 경우에 조상의 메서드를 오버라이딩 한다. 2차원 좌표계의 한 점을 표현하기 위한 Point클래스가 있을 때, 이를 조상으로 하는 Point3D클래스, 3차원 좌표계의 한 점을 표현하기 위한 클래스를 다음과 같이 새로 작성하였다고 하자. class Point { int x ; int y ; String ge..
[기본 개념] 2 | (1.3) 단일상속, Object 클래스1 상속의 정의와 장점2 클래스간의 관계 - 포함관계3 클래스간의 관계 결정하기4> 단일상속(single inheritance)5> Object클래스 - 모든 클래스의 조상4 단일상속(single inheritance)자바에서는 오직 단일 상속만을 허용한다. 그래서 둘 이상의 클래스로부터 상속 받을 수 없다. 다중상속을 허용하면 여러 클래스로부터 상속받을 수 있기 때문에 복합적인 기능을 가진 클래스를 쉽게 작성 할 수 있다는 장점이 있지만, 클래스간의 관계가 매우 복잡해진다는 것과 상속받은 멤버간의 이름이 같은 경우 구별할 수 있는 방법이 없다는 단점을 가지고 있다. 만일 다중상속을 허용해서 TVCR클래스가 TV클래스와 VCR클래스를 모두 ..
[기본 개념] 2 | (1.2) 클래스 간 관계1 상속의 정의와 장점2> 클래스간의 관계 - 포함관계3> 클래스간의 관계 결정하기4 단일상속(single inheritance)5 Object클래스 - 모든 클래스의 조상2. 클래스간의 관계 - 포함관계 상속이외에도 클래스를 재사용하는 또 다른 방법은 클래스간에 '포함(Composite)'관계를 맺어주는 것이다. 이는 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것을 뜻한다. 원(Circle)을 표현하기 위한 Circle이라는 클래스를 다음과 같이 작성하였다고 가정하자. class Circle { int x ; // 원점의 x좌표 int y ; // 원점의 y..
[기본 개념] 2 | (1.1) 상속1> 상속의 정의와 장점2 클래스간의 관계 - 포함관계3 클래스간의 관계 결정하기4 단일상속(single inheritance)5 Object클래스 - 모든 클래스의 조상1. 상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 적은 양의 코드를 사용할 수 있고, 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 편하다. 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써주기만 하면 된다. 예를 들어 새로 작성하려는 클래스의 이름이 Child이고 상속받고자 하는 기존 클래스의 이름이 Parent라면 다음과 같이 하면 된다. cl..
[기본 개념] 1 | (5.1) 변수의 초기화1> 변수의 초기화2> 명시적 초기화(explicit initialization)3> 초기화 블럭(initialization block)4> 멤버변수의 초기화 시기와 순서1. 변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 멤버변수는 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지지만 지역변수는 사용하기 전에 반드시 초기화를 해야 한다. class InitTest { int x ; // 인스턴스변수 int y = x ; // 인스턴스변수 void method1( ) { ..