기술 서적 (25) 썸네일형 리스트형 [객체지향의 사실과 오해] ch1. 협력하는 객체들의 공동체/ 협력-역할-책임 목차 1. 서론 2. 기존의 객체지향 묘사 3. 객체의 3요소 : 협력, 역할, 책임 4. 협력 속에 사는 객체 5. 객체지향의 본질(핵심) 1. 서론 객체지향이란 무엇인가? => 이 질문에 대한 자신만의 견해를 가지는 것이 중요하다 => 그러나, 많은 개발자는 객체지향을 여전히 클래스나 상속을 중심으로 바라본다. 다음 책에서는 총 3가지 관점의 변화를 유도한다. 첫째, 클래스 중심 => 객체 중심 관점 둘째, 객체를 독립적 존재 => 협력적 존재로 바라보는 것 셋째, 객체에게 얼마나 적절한 역할과 책임을 부여하는가 => 궁극적으로 이 3가지 관점으로 프로그래밍 언어라는 틀에 어떻게 담아내는지가 중요하다 2. 기존의 객체지향 묘사 - 객체지향은 현실세계 사물의 추상화로 묘사되는 경우가 많다. - 그러나,.. [자바의 정석] ch11-1 : 컬렉션프레임워크 -- List / Stack-Queue 1. 컬렉션 프레임워크 더보기 : 데이터 군을 저장하는 클래스들을 표준화한 설계 >>컬렉션 프레임웤의 3가지 인터페이스 => Collection : List와 Set의 공통된 부분을 뽑아 정의한 인터페이스 >> Collection 인터페이스의 메서드 >>List 인터페이스 : 순서 존재 + 중복허용 -- 메서드 >>Set인터페이스 : 순서x + 중복 x >>Map 인터페이스 -- 키와 값을 하나의 쌍으로 묶어서 저장 - 키는 중복이 불가/ 값은 중복이 가능 - 순서가 존재x ㅡMap.Entry 인터페이스 : Map 인터페이스의 내부 인터페이스 : key-value 쌍을 다루기 위한 인터페이스 메서드 설명 boolean equals(Object o) 동일한 Entry인지 확인 Object getKey() .. [자바의 정석] ch9-1. java.lang 패키지와 유용한 클래스 1. Object 클래스 더보기 - object 클래스는 모든 클래스의 최고조상 == object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능 Object 클래스의 메서드 설명 protected Object clone() 객체 자신의 복사본을 반환 public boolean equals(Object obj) 객체 자신과 객체obj가 같은 객체인지 알려줌 (참조변수의 주소값을 비교) protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동 호출 public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 호출 public int hashCode() 객체 자신의 해시코드를 반환 public String toString() 객체 .. [자바의 정석] ch8. 예외처리 >>프로그램 오류 : 에러는 어쩔 수 없지만 예외는 처리해야 함 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 >>예외 클래스의 계층구조 - Object를 가장 상위계층으로 - Throwable => Exception + Error - RunException 클래스 -> 프로그래머의 실수로 발생하는 예외(예외처리 선택) - Exception 클래스 들 => 사용자의 실수와 같은 외적인 요인에 의해 발생(예외처리 필수) >>예외 처리하기 : 프로그램 실행시 발생가능한 예외에 대비한 코드를 작성하는 것 => 프로그램 비정상 종료를 막음 try-catch문 - 1. 하나의 메서드에 여러개의 try-catch문 사용 가능 - 2. .. [자바의 정석] ch7. 객체지향 프로그래밍 II 1. 상속 1-1. 상속의 정의와 장점 상속 : 기존 클래스를 재사용하여 새로운 클래스를 작성 => 재사용성 : 적은 양의 코드로 새로운 클래스 작성 => 공통규율 : 코드를 공통적으로 관리 사용방법 class Child extends Parent{ // } >>상속 유의사항 - 멤버만 상속된다. - 생성자와 초기화블록은 상속되지 않는다. - 자손 클래스의 멤버 개수는 조상클래스보다 항상 같거나 많다. - 클래스간의 관계에서 형제관계는 없다. 오직 부모-자식의 관계만 존재한다. - 자손 클래스의 객체 => 조상 클래스 멤버 + 자손 클래스 멤버 ex) public class TV{ String color; boolean power; int channel; void power(){power=!power;}.. [자바의 정석] ch5. 배열 >>배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열의 선언 - 원하는 타입의 변수를 선언하고 대괄호[]를 붙임 - 배열의 선언 : 생성된 배열을 다루기 위한 참조변수를 위한 공간을 만들뿐 => 배열의 생성을 해야 비로소 값을 저장할 공간이 만들어짐 ex) int [] score; //배열의 선언 -> 왼쪽 공간이 만들어짐 score= new int[5] // 5개의 int 값을 저장할 수 있는 배열을 생성 -> 0x100에 5개의 int 공간 만들고 주소값을 score에 저장 >>배열의 index : 배열의 요소마다 붙여진 일련번호 => 인덱스를 벗어난 값을 사용하지 않도록 주의 => 컴파일러가 범위 확인이 불가하므로 전적으로 프로그래머의 책임 # 배열의 길이는 0일 수도 있다. ex).. [자바의 정석] ch4. 조건문/반복문 1. 조건문 >>if문 if(조건식){ //조건식이 참일때 수행될 문장들을 적음 } -블럭 {} 의 긑에는 ;를 붙이지 않음 - 블럭의 연산이 하나인 경우 {}를 사용하지 않아도 됨 but, 이후 수정과정이 까다로워질 수 있음 >예시 if(score>60) System.out.println("합격입니다.") // if에 속한 문장 System.out.println("축하합니다.") // if에 속하지 않은 문장 >>숫자를 입력받아 분기하는 예제 import java.util.*; public class Flowex2 { public static void main(String[] args) { Scanner scanner= new Scanner(System.in); int input; System.out... [자바의 정석] ch3. 연산자 1.1 연산자 연산자: 연산을 수행하는 기호 피연산자: 연산자의 작업대상(변수, 상수, 리터럴, 수식) => 연산자는 피연산자 연산의 결과를 항상 반환한다. 1.2 연산자의 종류 >>헷갈리는 연산자 우선규칙 식 설명 x || => and가 or보다 우선순위가 높음 >>연산자 우선순위 1. 산술>비교>논리>대입, 대입은 제일 마지막에 수행된다. 2. 단항(1) / 이항(2) >삼항(3). 단항 연산자의 우선순위가 이항 연산자보다 높다. 3. 단항/대입을 제외한 모든 연산의 진행방향은 왼쪽-> 오른쪽이다. >>산술변환 1) 두 피연산자의 타입을 같게 일치시킨다. 2) 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다. => 실수로 답을 얻기 위해서는 한 피연산자를 float or double로 변.. 이전 1 2 3 4 다음