목록분류 전체보기 (170)
IT 개발노트
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가 인스턴스를 생성하는 것이지 생성자가 인스턴스를..
1. 메모리 : 프로그램을 실행하기 위한 데이터 및 명령어를 저장하는 공간 1.1 프로그램의 실행구조 : 프로그램이 실행되기 위해서는 windows나 linux같은 운영체제(OS)가 제어하고 있는 시스템의 리소스의 일부인 메모리(RAM : 주기억장치)를 제어할 수 있어야 하는데, java이전의 c같은 대부분의 언어로 만들어진 프로그램은 이러한 이유 때문에 OS에 종속되어 실행되게 되어 있었다. 1.2 java 프로그램의 실행구조 : java 프로그램은 JVM(Java Virtual Machine : 자바가상머신)이라는 프로그램만 있으면 실행이 가능한데, JVM이 OS에게서 메모리 사용권한을 할당받고 JVM이 java 프로그램을 호출하여 실행하게 된다. OS에는 독립되었지만 JVM 프로그램에 종속적이게 된..
1. 오버로딩 1.1 오버로딩이란? : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩' 또는 간단히 '오버로딩'이라 한다. 1.2 오버로딩의 조건 - 메서드 이름이 같아야한다. - 매개변수의 개수 또는 타입이 달라야 한다. * 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다는 것에 주의해야한다. 예시 1 int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } * 매개변수의 이름만 다른 경우 매개변수의 타입이 같기 때문에 오버로딩이 성립하지 않는다. 예시 2 int add(int a, int b) { return a+b; ..
1. 변수의 종류와 특징 1.1 선언위치에 따른 변수의 종류 : 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수이다. 변수의 종류선언위치 생성시기 클래스변수 클래스 영역클래스가 메모리에 올라갈 때인스턴스변수 인스턴스가 생성되었을 때 지역변수 클래스 영역 이외의 영역 변수 선언문이 수행되었을 때 1.1.1 인스턴스변수 : 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다. 그렇기 때문에 ..