목록JAVA (101)
Frog is cry
소프트웨어 디자인 설계 패턴 MVC(Model-View-Controller) Controller(DAO, Data Access Object) 현재 Application에서 연산에 필요한 기능들이 담겨 있는 페이지 보통 외부 저장소에 있는 데이터를 가지고 오는 기능들로 구현되어 있으며, 메소드만 선언되어 있다. Model(DTO, Data Transfer Object. VO, Value Object) DAO에 있는 메소드의 기능을 수행하면 그에 맞는 결과가 나오게 된다. 이 결과들을 담을 수 있는 객체를 Model이라고 하며 보통 DAO에 있는 메소드의 리턴타입 혹은 매개변수 자리에 사용된다. View 클라이언트의 요청에 맞는 결과 화면이 구성되는 페이지 웹 에서는 HTML이라는 마크업 언어로 구성되어 있..
Set Set은 집합이다. 중복없이 데이터를 관리하는 자료구조이다. 저장된 값은 인덱스가 없기 때문에 순서가 고정되어 있지 않다. 구현된 클래스는 HashSet이다. 값의 유무검사가 목적이기 때문에 검색속도가 굉장히 빠르다. 따라서 중복은 필요없다. Set은 검색 목적이 있기 때문에 순서 정보를 관리할 필요가 없어서 데이터 크기에 상관없이 검색에 걸리는 시간이 매우 짧다. 반면 ArrayList는 index를 관리해야 하기 때문에 상대적으로 시간이 오래 걸린다. 그러므로 기능적 차이가 없다면 Set을 사용한다. ------------------------------------------------------------------------------------------ HashMap Key와 Value..
Object 클래스 equals() 객체간의 주소 비교. String클래스에서는 값 비교로 재정의하여 사용한다. hashCode() 객체가 가지고 있는 주소 리턴. 만약 주소가 아닌 값을 비교하고 싶을 때에는 재정의 후 equals()에서 비교하여 사용한다. **Student.java 참고 -------------------------------------------------------------------------------- Wrapper Class 클래스 타입 = new 클래스타입(일반 타입): 박싱(boxing) 일반 타입 = 클래스 타입.일반타입Value(): 언박싱(unboxing) jdk1.5버전 이상부터는 오토를 지원한다. 클래스 타입 = 일반 타입;: 오토 박싱(auto boxing)..
내부 클래스(inner class) 클래스 내부에 클래스를 선언하여 외부 클래스의 필드 접근에 용이하게 하기 위함. 내부 클래스를 사용하는 이유 A라는 클래스에서 b라는 작업이 자주 쓰이고 이 작업은 B클래스를 만들어야 쉽게 관리할 수 있다. 하지만 다른 클래스에서 b작업이 필요 없거나, B클래스를 외부에 노출시키고 싶지 않을 때 사용한다. 이것을 캡슐화라고 한다. 내부 클래스는 GUI개발시 많이 사용된다. 내부 클래스 선언 방법 외부클래스 외부객체 = new 외부생성자(); 외부클래스.내부클래스 내부객체 = 외부객체.new 내부생성자(); ---------------------------------------------------------------------- 익명 내부 클래스(Anonymous i..
Storage class(저장기억부류) Stack Data영역 [지역][전역] [정적] 초기화직접 자동 생명주기}new 프로그램 종료시 보안성상중 하 ------------------------------------------------------------------------ 접근권한 제어자 default: 다른 패키지에서 접근 불가 public: 모든 곳에서 접근 가능 protected: 다른 패키지에서 접근 불가(단, 자식은 가능) private: 다른 클래스에서 접근 불가 private은 직접접근을 막을 때 사용하고, 간접접근으로 수정하도록 한다. 1. 생성자로 초기화 할 수 있다. 2. public 접근자인 getter와 setter 메소드로 간접 접근한다. 반드시 private필드 선언시 g..
JAVA2 Casting - up casting 부모 타입에 자식 값을 넣는 작업. 모든 자식은 부모 타입이므로 여러 자식들을 하나의 타입으로 관리하고자 할 때에는 up casting을 통해 관리한다. 하지만 부모의 메모리 할당 크기가 자식 메모리 할당 크기보다 더 작기 때문에 자식에서 추가한 필드들은 모두 잘려서 들어간다. - down casting 자식 타입에 부모 값을 넣으면 오류이다. up casting된 객체를 다시 자식 타입으로 변경하는 작업이 바로 down casting이다. up casting된 객체는 타입은 부모이지만 값은 자식 값이기 때문에 오류없이 가능하다. 자식에서 새로 추가한 필드를 다시 사용하고 싶을 때 down casting을 한다. Casting을 사용하는 이유 여러 클래스들..
다형성(Polymorphism) 1. 오버로딩(Overloading) : 넘쳐서 불러오기 매개변수의 타입 혹은 개수가 다르면 같은 이름의 메소드로 선언할 수 있다. 2. 상속(inheritance) 1. 구현된 클래스에 있는 필드를 새로 만드는 클래스에서 그대로 사용하고 싶을 때 필드를 다시 선언하는 것이 아니라 기존 클래스에서 그대로 받아 와서 사용한다. 이 때 상속이 필요하다. 2. 여러 클래스를 만들 때 공통된 필드들이 반복해서 선언된다. 이 때 부모 클래스를 선언하고 그 안에 공통된 필드들을 구현한다. 자식 클래스들은 그대로 상속받아 사용한다. 상속 방법 class A{ A필드 } class B extends A{ A, B필드 } A : 부모 클래스, 상위 클래스, 슈퍼 클래스, 기반 클래스 B ..
클래스(반) 공통적인 요소들이 모여있는 곳. 1. 주어이다. Monkey.eat("바나나"); 원숭이가 먹는다 바나나를 주어 동사 목적어 영어는 항상 주어가 앞에 나오고, 맨 앞에는 대문자로 시작한다. 바로 클래스가 주어이다. 2. 타입이다. 선언이 반복되면 효율이 떨어지고 처리비용이 증가한다. 그래서 반복적인 선언을 묶고 이름을 붙여서 관리하고 이 것을 클래스라고 부른다. 클래스에는 한 번씩만 선언하고 선언된 요소들을 필드 또는 멤버라고 한다. 만약 클래스에 있는 필드를 사용하고 싶다면 그 클래스 타입의 변수를 선언해야 사용가능하다. 이 때 이 변수를 객체라고 한다. 클래스 선언 class 클래스명{ 필드(객체, 메소드) } 클래스 사용 객체화 클래스명 객체명 = new 생성자(); 클래스는 추상적이다..