분류 전체보기
-
상속컴퓨터/Java 2019. 9. 3. 23:43
출처 : 자바 프로그래밍 입문(인프런) - 필요성 기존의 검증된 class를 이용해서 빠르고 쉽게 새로운 class를 만들 수 있다. ex. extends를 이용해서 상속한다 package testPjt; public class ChildClass extends ParentClass{ public ChildClass() { System.out.println("-- ChildClass constructor --"); } public childFun() { System.out.println(" -- childFunc() --"); } } package testPjt; public class ParentClass { public ParentClass() { System.out.println("--- Paren..
-
싱글턴 패턴컴퓨터/객체지향_디자인패턴 2019. 9. 3. 23:24
- 싱글턴이란? 특정 클래스에 대해서 객체 인스턴스가 하나만, 필요할 때만! 만들어질 수 있도록 해주는 패턴 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴 Singleton.getInstance() 와 같은 형태 - 어디서든 무조건 같은 인스턴스가 리턴 제한된 용도로 특수한 상황에서 사용! - 사용예 스레드 풀, 캐시, 대화상자, 사용자 설정, 레지스트리 설정을 처리하는 객체, 로그 기록용 객체, 프린터나 그래픽 카드 같은 디바이스를 위한 디바이스 드라이버 -> 인스턴스를 두 개 이상 만들게 되면 프로그램이 이상하게 돌아간다든가 자원을 불필요하게 잡아먹는 경우, 결과에 일관성이 없어지는 경우 - 필요성 1) 전역변수의 단점 : 애플리케이션이 시작될 때 객체 생성, 그 객체가 자원을 많이 차지..
-
플라이웨이트 패턴컴퓨터/객체지향_디자인패턴 2019. 9. 3. 22:07
- 언제 사용? 어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 "가상 인스턴스"를 제공하고 싶을 때 어떤 클래스의 인스턴스가 아주 많이 필요하지만 모두 똑같은 방식으로 제어할 수 있는 경우 유용 특정 인스턴스만 다른 방식으로 작동하도록 하는 것은 불가능 - 인스턴스 통제, 플라이웨이트 패턴의 근간 언제 어느 인스턴스를 살아 있게 할지 통제 가능 -> 인스턴스 통제 클래스 싱글턴도 만들 수 있고, 인스턴스화 불가로 만들 수도 있다. 불변값 클래스에서 동치인 인스턴스가 단 하나뿐임을 보장할 수 있다. - 필요성 객체를 수 천 개 만드는 대신 인스턴스 한 개만 만들고 모든 가상 인스턴스들의 상태를 클라이언트 객체에서 관리 - 2차원 배열에 저장? 출처 : headfirst design pattern
-
데이터 은닉컴퓨터/Java 2019. 9. 3. 11:00
출처 : 자바프로그래밍 입문(인프런) 데이터 은닉 : 객체가 가지고 있는 데이터가 외부로부터 변질되지 않게 보호하는 방법 - 멤버변수의 private 설정 어떤 클래스의 속성이 public이라면? 외부에서 계좌 소유주 이름 바꾸는 등 데이터 변경 가능해 멤버 변수(속성)는 주로 private으로 설정해서, 외부로부터 데이터가 변질되는 것을 막는다. - setter, getter 멤버변수를 외부에서 변경할 수 있도록 하는 메서드 package testPjt; public class Student { private String name; private int score; public Student(String n, int s) { this.name = n; this.score = s; } public voi..
-
패키지와 static컴퓨터/Java 2019. 9. 3. 08:48
출처 : 자바프로그래밍 입문(인프런) class 파일을 효율적으로 관리하기 위한 방법 객체 간에 속성 또는 기능 공유 - 패키지 폴더를 만들어서 클래스 파일을 관리하는 디렉토리 패키지 이름은 클래스들을 대표할 수 있는 이름으로 한다 잘 만든 패키지의 경우 다른 곳에 이식해서 사용할 수 있기 때문에 unique한 이름으로 짓는다. 도메인을 거꾸로 해서. ex. kr.co.회사이름 - import import java.util.ArrayList; ex. com.java.employee.Employee; -> com.java.employee 패키지에서 Employee 클래스 불러온다 com.java.dailyJournal.* -> 해당 패키지에 있는 모든 클래스를 import하겠다. - static 필드와 메..
-
생성자, 소멸자컴퓨터/Java 2019. 9. 3. 08:20
- 디폴트 생성자 객체가 생성될 때(변수에 할당 말고 new로 생성시) 가장 먼저 호출되는 생성자로, 만약 개발자가 명시하지 않아도 컴파일 시점에 자동 생성된다. package lec11Pjt001; public class ChildClass { public String name; public String gender; public int age; // 디폴트 생성자 public ChildClass() { System.out.println(" --- ChildClass constructor --- "); } // 디폴트 생성자가 없는 경우 실행되는 생성자 public ObjectEx() { } } - 사용자 정의 생성자 디폴트 생성자 외에 특정 목적에 의해서 개발자가 만든 생성자, 매개변수에 차이가 있다..
-
객체와 메모리컴퓨터/Java 2019. 9. 2. 16:45
출처 : 자바프로그래밍 인문(인프런) - 메모리에서 객체 생성(동적 생성) 객체는 메모리에서 동적으로 생성되며, 객체가 더 이상 필요없게 되면 GC(Garbage Collector)에 의해서 제거된다. 객체를 만들기 위해 class를 만든다 -> new라는 키워드로 생성한다 -> - 레퍼런스(가리킨다)란? 메모리에 생성된 객체의 메모리 주소를 담고 있는 것 생성한 객체의 주소를 변수에 저장하는 것. 클래스가 같아도 다른 객체다. package lec11Pjt001; public class MainClass { public static void main(String[] args) { ChildClass child1 = new ChildClass(); ChildClass child2 = new ChildCl..
-
클래스 01: 클래스, 클래스 객체 생성, constructor, instance fields, methods컴퓨터/Java 2019. 9. 2. 14:33
* 클래스란? * Class : the fundamental concept of object-oriented programming * Classes are a blueprint for objects.Blueprints detail the general structure. * Java programs have at least one class and one main() method. Each class represents one real-world idea. 객체 지향 프로그래밍 언어에는 클래스 기반 언어와 프로토타입 기반 언어가 있다. * 클래스 기반 언어 -> 클래스로 객체의 기본적인 형태와 기능을 정의하고, 생성자로 인스턴스를 만들어서 사용할 수 있다. -> 클래스에 정의된 메서드로 여러 가지 기능을..