전체 글 69

java (싱글톤)

*싱글톤 프로그램 전체에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다. 단 하나만 생성된다고 해서 이 객체를 싱글톤이라고 한다. 싱글톤 패턴을 사용하는 이유 -메모리 측면 최초 한번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 뿐만 아니라 이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다고 볼 수 있다. -다른 클래스 간에 데이터 공유가 쉽다 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다. 하지만 여러 클래스의 인스턴스에서 싱글톤 인스턴스의 데이터에 동시에 접근하게 되면 동시성 문제가 발생할 수 있으니 이점을 유의해서 설계하는 것이 좋다. 예제

java 2022.09.22

java (getter, setter, 정적 멤버와 메소드)

*Getter와 Setter 메소드 객체지향 프로그래밍에서는 객체 내부의 데이터를 객체 외부에서 접근하는 것을 막는다. 이에 대한 정해진 정상적인 접근을 허용하기 위한 개념으로 게터와 세터라는 개념이 있다. 예제 *정적 멤버와 메소드 -정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용 할수 있는 필드와 메소드를 의미 -개체 소속이 아니고 인스턴스 소속 -정적메소드 내부에서는 인스턴스 필드나 인스턴스 매소드를 사용 할 수 없다. -static 변수와 메소드는 클래스를 통해 호출 예제 결과

java 2022.09.21

java (접근제한자)

*접근제한자 -클래스 및 인터페이스 그리고 멤버에 대한 접근을 제한 -클래스와 인터페이스를 다른 패키지나 클래스에서의 접근을 제한하는 용도로 사용 -두 개 이상 같이 사용 할 수 없다 -데이터은닉 혹은 캡슐화에 대한 핵심 개념 (데이터은닉 : 사용자가 알 필요 없는 정보나 숨겨야 할 정보를 보이지 않도록 한다는 개념) private -private 접근 제어자를 사용하여 선언된 클래스 멤버는 외부에 공개되지 않으며, 외부에서는 직접 접근할 수 없다. -자바 프로그램은 private 멤버에 직접 접근할 수 없으며, 해당 객체의 public 메소드를 통해서만 접근할 수 있다. protected -클래스 내부에서의 접근을 허용 -부모로 부터 상속받은 클래스에 대해서 접근을 허용 default -접근 제한자가 ..

java 2022.09.20

java (super, super())

*super -자식 클래스가 부모클래스로 부터 상속 받은 멤버를 참조 할 때 사용 -클래스 내의 멤버번수와 지역변수의 이름이 같을 경우 구분을 위해 this를 사용하듯이, 부모 클래스와 자식클래스 생성자를 구분하기 위해 사용 예제 결과 *super() -부모 클래스의 생성자를 호출하는 메소드 -상속받은 자식클래스가 부모클래스의 멤버를 사용할 경우가 있을 수도 있으므로 부모 클래스를 우선적으로 초기화해줘야 함. -부모클래스의 생성자는 자식 클래스의 생성자 첫줄에서 호출 -기본적으로 별도로 super()를 사용하지 않아도 자동으로 기본 생성자를 호출 -부모 클래스의 생성자가 기본 생성자가 아니면 자동으로 추가되지 않으므로 추가해줘야 함 예제 결과

java 2022.09.19

java (this와 this())

*this 참조 변수 -인스턴스가 자기 자신을 참조하는데 사용 -해당 인스턴스의 주소를 가리킴 -생성자의 매개변수 이름과 인스턴스 변수의 이름이 같을 경우에는 인스턴스 변수 앞에 this 키워드를 붙여 구분해야 함 -this 참조자는 인스턴스 메소드만 사용할 수 있고 클래스 메소드에서는 사용 할 수 없다. -모든 인스턴스 메소드에는 this 참조 변수가 생략되어 있다. *this() 메소드 - 다른 생성자 호출 -생성자 내부에서만 사용 -같은 클래스의 다른 생성자를 호출 할 때 사용 -this() 메소드에 인수를 전달하면, 일치하는 생성자를 찾아서 호출

java 2022.09.07