[Java] 자바의 중첩클래스(nested class)

♦ 자바의 중첩 클래스(nested class) 중첩클래스란 클래스안에 또다른 클래스가 정의되는 것을 말한다. 일반적으로 클래스는 독립적으로 정의되고 사용하지만 중첩클래스는 멤버 형태로 클래스를 포함할 수 있으며 중첩되는 클래스의 개수는 제한이 없다. 중첩클래스는 특정 클래스를 자신의 클래스 내부적인 용도로만 사용하고자 할때 효율적이다. 대표적인 형태가 GUI 이벤트를 처리하는 경우이다. 화면을 구성하는 GUI 클래스와 이벤트를 처리하는 이벤트 클래스가 있는데, GUI … 더 읽기

[Java] 자바의 인터페이스(interface)와 추상클래스(abstract class)

♦ 자바의 인터페이스와 추상클래스 상속은 객체지향 프로그래밍의 핵심이다. 상속을 적용하면 코드의 재사용 및 다형성, 메소드 오버라이딩을 통해서 객체지향적인 프로그램을 개발할 수 있다. 하지만 상속을 적용시켜도 하위 클래스에서 부모의 메소드를 상속받아서 사용하지 않고 개발한다면 상속의 장점을 얻을 수 없다. 상속은 강제성이 없기 때문이다. 따라서 객체지향적인 프로그램 개발을 위해서 반드시 부모클래스의 메소드를 사용하도록 강제할 필요성이 등장하게 되는데 … 더 읽기

[Java] 자바의 메소드 오버라이딩(method overriding)과 다형성(Polymorphism)

♦ 자바의 메소드 오버라이딩과 다형성 메소드 오버라이딩(method overriding) 일반적으로 상속 관계시 상위 클래스의 메소드를 하위 클래스에서 선언 없이 사용 가능하다. 이때 하위 클래스에서 상위 클래스의 메소드를 수정해서 사용할 수 있는데 이런 형태의 메소드를 오버라이딩 메소드 라고 한다. 메소드 오버라이딩 규칙 상속이 전제되어야 한다. 메소드 이름이 반드시 동일해야 한다. 메소드 리턴타입이 반드시 동일해야 한다. 메소드 인자 … 더 읽기

[Java] 자바의 package 와 import

♦ 자바의 package 와 import package 문 프로그램을 개발하다보면 많은 클래스파일을 만들게 되는데, 이때 서로 관련 있는 클래스 파일들은 패키지로 묶어서 관리할 수 있다. 윈도우에서 파일관리 목적으로 폴더를 사용하는 것과 비슷하다. package 문 형식 package 패키지명;   package 사용법 패키지문은 반드시 한번만 사용가능하다. 클래스 선언보다 먼저 선언되어야 한다. 패키지명은 계층구조를 가질 수 있다. 중복되면 안되며 … 더 읽기

[Java] 자바의 메소드 및 생성자 오버로딩(Overloading)

♦ 자바의 메소드 및 생성자 오버로딩(Overloading) 기본적으로 하나의 클래스 안에서 사용되는 모든 식별자는 이름이 중복되면 안된다. 변수의 이름은 블록 {} 이 서로 다르면 중복이 가능하다. 동일 이름 변수와 블록 {} 의 관계 public class Test01 { public static void main(String[] args) { int num = 10; // int num=20; // 에러 System.out.println(num); } public void … 더 읽기

[Java] 자바의 상속(Inheritance)에 대한 간단한 이해

♦ 자바의 상속(Inheritance) 상속의 특징 객체 간의 is a 관계가 성립되어야 한다. 부모클래스의 멤버(인스턴스 변수, 메소드)를 자식클래스가 선언 없이 사용가능하다. 단 private 접근지정자와 생성자는 상속되지 않는다. 자바는 단일 상속(Single Inheritance)만을 지원한다. extends 키워드로 표현한다. API 및 사용자가 만든 클래스들은 모두 상속 관계인 계층구조로 되어있다. 가장 상위에는 java.lang.Object 클래스가 있다. 따라서 모든 클래스는 Object 클래스를 상속받는다. … 더 읽기

[Java] 자바의 클래스와 객체생성

♦ 자바의 클래스와 객체생성 자바에서는 모든 객체가 클래스로 정의된다. 클래스 형식 [지정자] class 클래스명 { [생성지] [인스턴스 변수] [메소드] }     지정자(modifier) 지정자는 특정 목적을 위해서 사용하는 키워드를 의미한다. 생략이 가능하며 일반 지정자와 접근 지정자가 있다. 1. 일반 지정자(modifier) : static, final, abstract 2. 접근 지정자(access modifier) : private, protected, default(friendly), public   인스턴스 … 더 읽기