목록Language/Java_basic (105)
Daily coding
Observer Pattern : 정찰 -> 감시 MyClass 감시해야할 클래스 ObserverA, B : 감시자 // 감시 해야할 클래스 : extends Observable public class MyClass extends Observable { private String priArg = null; // 일반 메소드 정의하기 // 변경사항이 있을 때 Observer 클래스에 알려주는 메소드 @Override public void notifyObservers(Object arg) { arg MyClass cls = new MyClass( ); // 감시자 A, B를 추가 cls.addObserver(new ObserverA()); cls.addObserver(new ObserverB()); cls...
Factory Pattern - Singleton Pattern : 중심이 되는 데이터 관리 template(list, map)을 중심으로 어디서나 접근이 용이하게 하기 위한 패턴 instance는 한 개 - Factory pattern : 원하는 클래스의 형태를 생성하기 용이한 패턴. 게임 프로그래밍에 많이 사용 팩토리 메소드 패턴 : 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만든다. 즉 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것. 추상 팩토리 패턴 : 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성. ( 출처: https://jusungpark.tis..
Calendar : 연도, 월, 일 등의 날짜 정보를 얻어올 수 있음 - Date : 시간도 불러올 수 있음 - 일정 관리 : 예약 서비스 등에 많이 사용됨 // 사용방법 1 Calendar cal= new GregorianCalendar(); // 사용방법 2 Calendar cal2= Calendar.getInstance(); 날짜 : get int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) +1; // 0 ~ 11로 구성됨(0:1월),데이터 넣을때는 실제 (월-1)해준 값 넣기 int day = cal.get(Calendar.DATE); System.out.println(year + "년 " + month + "월 " + ..
(강사님 답) Human(부모클래스) package day12.ExampleAnswer.dto; public class Human { private int number;// 시퀀스 넘버, 중복되지 않음 private String name; private int age; private double height; public Human() { } public Human(int number, String name, int age, double height) { this.number = number; this.name = name; this.age = age; this.height = height; } public int getNumber() { return number; } public void setNumb..
Singleton 싱글턴 패턴 Design Pattern : 38 가지가 존재 - 목적 : 규정된 코드의 규칙에 따라 프로그램을 짜는 것 1. Singleton : - 하나의 인스턴스만 생성하여 데이터를 넘겨주는 방식으로 사용 - 클래스끼리의 데이터를 주고 받을 때 코드를 단순하게 만들기 위함 2. Factory : 3. Observer : 해킹하기 좋은 패턴 ... Singleton pattern - 단 1개의 instance만을 이용해서 접근하는 패턴 MyClass와 YouClass의 데이터 교환 방법 1 ( 대화 ) MyClass mcls = new MyClass(); YouClass ycls = new YouClass(); 1. setter와 getter를 통해..
1. 부모클래스 Human package day11.Example_project; public class Human { //(부모) human class : id, name, age, height(double) protected int number; private String name; private int age; private double height; public Human() { } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public Human(String name, int age, double height) { this.name = name; this.a..
LinkedList 링크드리스트 ArrayList : 검색 ( = Vector) LinkedList : 추가, 삭제가 빈번하게 이루어질 때 단방향을의미하는 벡터는 어레이리스트랑 같은 역할 ( 위치의미가 아님 ) Vector vec = new Vector(); vec.add("ddddd"); vec.size(); 링크드리스트 선언 방법 1. LinkedList LinkedList list = new LinkedList(); 2. List 인터페이스로도 선언가능 // 컬렉션 중 List는 인터페이스로 정의되어있다. // List list = new LinkedList(); if ( list.isEmpty( ) ) { System.out.println("데이터가 하나도 없습니다."); } // 데이터가 있는 ..
Interface 인터페이스 abstract class : method + abstract method - 변수의 선언이 가능 - * class 다중 상속이 불가능 interface : abstract method으로만 이루어져 있다.(선언만 되어있는 메소드) - 변수의 선언이 불가능함 - * 다중상속이 가능하다 * - 공통작업을 하는데 유용함 MyClass cls = new MyClass(); cls.method(); cls.func(); // 아래처럼도 사용가능하다 Interface inter = new MyClass(); inter.method(); inter.func(); // 아래처럼 클래스 없이도 사용가능하다. Interface inter2 = new Interface() { @Override..
Abstract 추상 클래스 class : 객체화에 대한 설계도, method의 내용이 모두 설정되어 있음 추상메소드 : 메소드가 정의만 되어있는 요소, 구체적인 로직은 없고 ( { }없음 ) 메소드의 정의만 되어있다. 추상클래스 : 추상 메소드를 한 개 이상 포함하고 있는 클래스 - 추상 클래스만은 생성이 불가능함 - 추상 클래스를 상속한 후에 자식 클래스에서 정의 후에 생성이 가능(오버라이딩) - instance로 설정은 가능 아래는 메소드의 정의부가 없기 때문에 오류가 난다. // AbstractClass a = new AbstractClass(); 추상 클래스를 상속받은 일반 클래스 생성방법 MyClass cls = new MyClass(); 추상클래스가 부모 메소드이기 때문에 아래와 같이 생성하..
HashMap : - 사전이라고도 함(dictionary) - 쌍으로 이루어짐 : key, value - web에서는 hashmap과 같은 기능을 수행하는 Json이 있다 (XML 단점 보완) - ** 중복된 key 값을 사용할 수 없다 ** (multiMap은 중복 키값이 가능) - tree 구조 : * 리스트 : 선형구조 0-0-0-0-0-0-... * 맵 : 어느 부분에 들어갈 지 모름, 이진트리로 이루어짐 0 0 0 0 0 0 0 - 검색이 아주 우수하다 (빠름) TreeMap : - HashMap + sorting 기능이 추가됨 - 오름차순, 내림차순이 모두 구현된다 - 무조건 key값으로만 sorting이 된다.(value는 불가능) //선언하기 Map hMap = new HashMap(); ..