Java
[자바] 정적 멤버와 static,싱글톤(singleton)
정적(Static) : 고정된 이란 뜻인 static은 클래스에 고정된 멤버로 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 정적 멤버는 객체에 속한 멤버가 아니라 클래스에 소속된 멤버이기 때문에 클래스 맴버라고도 한다. 1. 정적 멤버 선언 정적 필드, 정적 메소드를 선언하는 방법은 필드와 메소드 선언 시 static 키워드를 추가적으로 붙이면 된다, public class 클래스 { //정적 필드 static 타입 필드 [= 초기값] //정적 메소드 static 리턴타입 메소드( 매개변수선언1, . . . ) { . . . } 정적 필드와 정적 메소드는 클래스에 고정된 멤버이기 때문에. 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때, 클래스별로 관리된다. 따라서 클래..
[Java] GET,SET을 사용하는 이유
GET, SET 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다. 객체 데이터를 외부에서 읽고 변경 시 객체의 무결성이 깨질 수 있기 때문이다. ex) 자동차 속도는 음수 불가, 하지만 외부에서 음수로 설정하면 객체 무결성이 깨진다. 따라서 객체 지향 프로그래밍에서는 메소드를 통해 데이터를 변경하는 방법을 선호한다. 데이터는 외부에서 접근하지 않도록 막고, 메소드는 공개해서 외부에서 메소드를 통해 데이터에 접근하도록 유도한다. (메소드는 매개값을 검증해서 유효한 값만 데이터로 저장할 수 있기 때문이다.) 이러한 역할을 하는 메소드 Setter! 외부에서 객체의 데이터를 읽을 때도 메소드를 사용하는 것이 좋다. 객체 외부에서 객체 필드값을 사용하기 부적절한 경우가 있..
[자바] 생성자(constructor)
생성자 자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공한다. 자바에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 한다. 즉, Car 클래스의 생성자의 이름은 Car가 된다. 이러한 생성자는 다음과 같은 특징을 가진다. 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않습니다. 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있습니다. 객체를 초기화하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있습니다. 기본 생성자 (default constructor) 클래스에는 반드시 적어도 하나 이상의 생성자가 존재 클래스에 생성자를 구현하지 않아도 new 키..
[자바] 인스턴스(Instance)란?
인스턴스(instance) 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태 실제 클래스기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨 가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년 등의 값을 가지게 됨 new 키워드를사용하여 인스턴스 생성 예시 쉽게 이해하기 위해 붕어빵에 비유를 해보자 붕어빵을 만들려면 붕어빵을 찍기 위한 틀이 있어야 한다. 틀이 준비되었다면 틀에 밀가루 반죽과 팥을 집어넣고 구워준다. 적당히 구워지면 틀에서 꺼낸다. 그로서 붕어빵이 탄생! 이 과정을 Class, Object, Instance의 관점에서 살펴보자 우선 일대일 대응을 시켜 보도록 하자 o 붕어빵틀 = Class o 붕어빵 = Object o..