목록기초튼튼/JAVA (58)
IT 개발노트
1. 추상클래스 1.1 추상클래스란? - 추상클래스(abstract class)는 미완성 설계도로 비유할 수 있는 구체화되지 않은 클래스이다. - 미완성의 추상 메서드를 포함하고 있으며, 반드시 상속을 통해 완성한 후 사 용할 수 있다. * 추상클래스 자체로는 인스턴스 생성이 불가능하다. - 추상클래스는 추상메서드 외에도 일반적인 멤버변수와 메서드, 생성자도 포 함한다. 1.2 추상 클래스의 특징 - 클래스 앞에 abstract키워드를 붙여서 정의 - 인스턴스 생성 불가 - 추상 메서드를 포함(그 외 멤버변수, 메서드, 생성자도 포함가능) 1.2.1 추상 클래스 생성방법 123abstract class [클래스명] {// 클래스 내용} * 추상메서드가 없어도 클래스에 abstract 키워드를 붙이면 추상..
1. 다형성 1.1 다형성이란? - 객체지향개념에서 다형성이란 '여러가지 형태를 가질 수 있는 능력'을 의미 하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도 록 함으로써 다형성을 프로그램적으로 구현하였다. * 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. - 참조변수와 인스턴스가 다른 타입을 지닌 경우 참조변수의 타입에 따라 사 용 할 수 있는 멤버의 개수가 달라진다. - 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스의 멤버 개수보다 같거 나 적어야 한다. (참조변수가 조상이어야 한다.) - 클래스는 상속을 통해서 확장될 수는 있어도 축소될 수는 없어서, 조상 인스 턴스의 멤버 개수는 자손 인스턴스의 멤버 개수보다 항상 적거나 같다...
1. 제어자 1.1 제어자란? : 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눈다. - 접근 제어자 : public, protected, default, private - 그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근 제어자는 한번에 네 가지중 하나만 선택해서 사용할 수 있다. 즉, 하나의 대상에 대해서 public과 private을 함께 사용할 수 없다는 것이다. 1.2 ..
1. 오버라이딩 1.1 오버라이딩이란? : 부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라 한다. 간단히 말하면 메서드를 다시 정의하는 것이다. 예시 112345678910111213class Parent { int age = 10; public void setAge(int age) { this.age = age; }} class Child extends Parent { public void setAge(int age) { this.age = age+10; }} - Child클래스가 Parent클래스를 상속받고 있다. 상속 관계이므로 Child에서는 setAge() 메서드를 그래도 사용할 수 있다. 그러나 Child에서는 메서드의 기능을 약간 변경해서 사용하고 있다. 이런식으로 상..
1. 상속 1.1 상속의 정의와 장점 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것을 상속이라 한다. 쉽게 말하면, 부모 클래스의 멤버를 자식 클래스에게 물려주는 것이다. 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄여준다. 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 다양한 객체(타입)을 상속을 통해서 하나의 객체(타입)으로 묶을 수 있다. 1.2 상속을 구현하는 방법 : 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extesds'와 함께 써 주기만 하면 된다. 예를 들어, 새로 작성하려는 클래스의 이름이 Child이..
1. static의 이해 1.1 static 키워드의 이해 : 우선 static 키워드는 '공유'라고 생각을하자. 1.2 static은 클래스 변수 : static을 사용한 변수는 클래스 변수이다. 객체는 클래스에서 생성되어지고, 생성된 객체들은 모양은 동일하지만 전혀 다른 것이라고 배웠다. 하지만 static이 붙은 변수는 객체 변수가 아닌 클래스 변수로써 객체가 생성되기 전에 이미 존재한다. * 데이터 영역은 가비지 콜렉터가 관리하지 않고, Heap영역만 관리한다. 1.3 static의 장점과 단점 : static을 사용한 변수는 객체생성과는 상관없이 클래스와 함께 존재하게 된다. 즉, 객체 생성을 하지 않아도 메모리에 상주하게 된다는 것이다. 객체를 생성하지 않고도 존재한다는 것은 그만큼 Heap ..
1. 변수의 초기화 1.1 변수의 초기화 : 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 변수의 초기화는 경우에 따라서 필수적이기도 하고, 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다. * 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 된다. * 지역변수는 사용하기 전에 반드시 초기화해야한다. 1.2 멤버변수의 초기화 방법 - 명시적 초기화 - 생성자 - 초기화 블럭 - 인스턴스 초기화 블럭 : 인스턴스변수를 초기화 하는데 사용 - 클래스 초기화 블럭 : 클래스변수를 초기화 하는데 사용 1.2.1 명시적 초기화 : 변수를 선언과 동시에 초기화하는 것을 명시적 ..
1. 생성자 1.1 생성자란? : 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. * 생성자 앞에 리턴값이 없음을 뜻하는 void를 사용하지는 않고, 아무것도 적지 않는다. * 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러개의 생성자가 존재할 수 있다. * 모든 클래스에는 하나이상의 생성자가 있어야한다. 1.2 생성자의 조건 - 생성자의 이름은 클래스의 이름과 같아야 한다. - 생성자는 리턴 값이 없다. * 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를..