[Java 입문] Super
·
Server/자바의정석
참조 변수 Super super는 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는 데 사용되는 참조 변수이다. 상속받은 멤버와 자신의 멤버와 이름이 같을 때는 super를 붙여서 구별할 수 있다. Super() 조상의 생성자 쓰기 this()는 같은 클래스의 다른 생성자를 호출하는 데 사용되지만, super()는 조상의 생성자를 호출하는데 사용된다. class Point { int x, y; Point(int x, int y){ this.x = x; this.y = y; } } class Point3D extends Point{ int z; Point3D(int x, int y, int z) { this.x = x; // 조상의 멤버를 초기화 this.y = y; // 조상의 멤버를 초기화 t..
[Java 입문] 상속
·
Server/자바의정석
상속 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. class Parent{} class Child extends Parent { //... } 이 두 클래스는 서로 상속 관계에 있다고 하며, 상속해주는 클래스를 ‘조상 클래스’라 하고 상속받는 클래스를 ‘자손 클래스’라 한다. 자손 클래스는 조상 클래스의 모든 멤버를 상속받기 떄문에, Child클래스는 Parent클래스의 멤버들을 포함한다고 할 수 있다. 만일 Parent 클래스에 age라는 정수형 변수를 멤버변수로 추가하면, 자손 클래스는 조상의 멤버를 모두 상..
[Java 입문] 생성자(constructor)
·
Server/자바의정석
생성자 생성자는 인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 하는 작업을 위해서도 사용된다. 생성자의 조건 생성자의 이름은 클래스의 이름과 같아야 한다. 생성자는 리턴 값이 없다. 클래스이름(타입 변수명, 타입 변수명, ...) { // 인스턴스 생성 시 수행될 코드, // 주로 인스턴스 변수의 초기화 코드를 적는다. } class Point{ Point() { // 매개변수가 없는 생성자. ... } Point(int x, int y) { // 매개 변수가 있는 생성자 ... } ... } 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다. 기본 생성자(Default ..
[Java 입문] Static 메서드와 인스턴스 메서드
·
Server/자바의정석
Static 메서드와 인스턴스 메서드 static이 붙어 있으면 클래스 메서드이고 붙어 있지 않으면 인스턴스 메서드이다. 클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 ‘클래스이름.메서드이름(매개변수)’와 같은 식으로 호출이 가능하다. 반면에 인스턴스 메서드는 반드시 객체를 생성해야만 호출할 수 있다. 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. 그런데 인스턴스 변수는 인스턴스(객체)를 생성해야만 만들어지므로 인스턴스 메서드 역시 인스턴스를 생성해야만 호출할 수 있는 것이다. 반면에 메서드 중에서 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드를 클래스 메서드(static메서드)로 정..
[Java 입문] 매개변수
·
Server/자바의정석
매개변수 매개변수의 타입이 기본형(primitive type)일 때는 기본형 값이 복사되겠지만, 참조형(reference type)이면 인스턴스의 주소가 복사된다. 기본형 매개변수 : 변수의 값을 읽기만 할 수 있다.(read only) 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다.(read & write) 기본형 매개변수 change메서드가 호출되면서 ‘d.x’가 change메서드의 매개변수 x에 복사됨 change메서드에서 x의 값을 1000으로 변경 change메서드가 종료되면서 매개변수 x는 스택에서 제거됨 ‘d.x’의 값이 변경된 것이 아니라, change메서드의 매개변수 x의 값이 변경된 것이다. 즉, 원본이 아닌 복사본이 변경된 것이라 원본에는 아무런 영향을 미치지 못한다. 이처럼 ..
[Java 입문] 메서드
·
Server/자바의정석
메서드 ‘메서드(method)’는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것 메서드는 크게 두 부분, ‘선언부(header, 머리)’와 ‘구현부(body, 몸통)’로 이루어져 있다. 메서드를 정의한다는 것은 선언부와 구현부를 작성하는 것을 뜻하며 다음과 같은 형식으로 메서드를 정의한다. 메서드의 선언부 메서드 선언부는 ‘메서드의 이름’과 ‘매개변수 선언’, 그리고 ‘반환 타입’으로 구성되어 있으며, 메서드가 작업을 수행하기 위해 어떤 값들을 필요로 하고 작업의 결과로 어떤 타입의 값을 반환하는지에 대한 정보를 제공한다. 매개변수 선언 매개변수는 메서드가 작업을 수행하는데 필요한 값들(입력)을 제공받기 위한 것이며, 필요한 값의 개수만큼 변수를 선언하며 각 변수 간의 구분은 쉼표’,’를 사용한다..
[Java 입문] 호출 스택
·
Server/자바의정석
호출 스택 호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다 public static void main(String[] args) { System.out.println("Hello"); } 위의 예제를 실행시키면 JVM에 의해서 main메서드가 호출됨으로써 프로그램이 시작된다. 이때, 호출 스택에는 main메서드를 위한 메모리공간이 할당되고 main메서드의 코드가 수행되기 시작한다. main메서드에서 println()를 호출한 상태이다. 아직 main메서드가 끝난 것은 아니므로 main메서드는 호출스택에 대기상태로 남아있고 println()의 수행이 시작된다. println메서드에 의해 ‘Hello’가 화면에 출력된다. println메서드의 수행이 완료되어 호출 스택에서 사라지고 자신을 호출한 ..
[Java 입문] 클래스와 객체
·
Server/자바의정석
객체지향 언어의 특징 코드의 재사용성이 높다. 새로운 코드를 성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다. 코드 간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 클래스와 객체 클래스의 정의 : 클래스란 객체를 정의해 놓은 것. 클래스의 용도 : 클래스는 객체를 생성하는 데 사용 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 유형의 객체 : 책상, 의자, 자동차, TV와 같은 사물 무형의 객체 : 수학..
코드플리
'Server/자바의정석' 카테고리의 글 목록 (2 Page)