[[TableOfContents]] == 일시 == * 오후 12시 05분 ~ 1시 00분 == 참가자 == || 유재범 || 참석 || || 최다인 || 참석 || || 이지수 || 참석 || || 김용준 || 참석 || || 김정민 || 참석 || == 진행 상황 == * 최다인 학우의 발표 * Java의 정석 - Chapter 6 === 발표 내용 === * 객체지향 프로그래밍은 절차지향 프로그래밍의 반대개념이 아니다. * 객체지향에도 절차지향의 개념이 포함되어 있음. * Class는 일종의 설계도 개념, 설계도로 만들어 낸 제품을 객체, 또는 인스턴스라 함. * 객체와 인스턴스의 차이 * 책상은 객체이다. * 책상은 가구 클래스의 인스턴스이다. * 실제로 생성한 객체 각각을 인스턴스라 부름. * 객체의 구성 * 1. 속성 / 멤버변수 / 필드 * struct의 구성요소라고 봐도 무관 * 2. 기능 / 메서드 / 함수 * public을 붙였을 경우 타 클래스에서도 사용 가능한 요소가 되며, private을 붙였을 경우에는 불가. * 클래스 작성 -> 인스턴스 생성 * class 클래스명 { } (ex: class TV { ... }) * 클래스명 변수명; (ex: TV tv1;) * 이 때 생성되는 변수는 인스턴스가 아니다. 생성하는 인스턴스의 주소값을 담을 수 있는 일종의 포인터 변수. * 변수명 = new 클래스명(); (ex: tv1 = new TV();) * new를 사용했을 때 인스턴스가 생성되며, 이 때의 주소값을 변수에 대입. 따라서 TV tv1 = new TV(); 처럼 한 문장에 쓸 수도 있다. * 가비지 콜렉터 {{{ class TV { ... } TV tv1 = new TV(); TV tv2 = new TV(); //각각 별개인 두 개의 TV 인스턴스 생성 tv2 = tv1; //tv2가 가리키는 인스턴스를 tv1이 가리키고있는 TV 인스턴스로 변경. //이 때, 원래 tv2가 가리키고 있던 인스턴스는 사용하지 않는 상태가 되므로, JAVA의 가비지 콜렉터가 자동으로 메모리를 해제한다. }}} * 객체지향의 기본 개념 중 하나 : 구현의 세부 사항을 클래스 안에 감추어라. * public 필드는 되도록 피해야한다. * 필드에 직접 접근하는 방법보다는, 클래스에 메소드를 추가하여 필드에 대한 접근을 선별적으로 승인해야 한다. * 필드와 관련된 두 종류의 메소드 * 접근자 * 보통 get을 메소드 이름 앞에 붙임 * 생성자 * 보통 set을 메소드 이름 앞에 붙임 * 장점 * 잘못된 값이 대입되는 것을 방지할 수 있다. * 값이 바뀌면 안되는 필드의 경우, 생성자를 만들지 않음으로 자동적으로 읽기만 가능하게 할 수 있다. {{{ //접근자 생성자 예시 class Car { private String color; public String getColor() { return color; } //접근자 public void setColor(String c) { color = c; } //생성자 }}} == 다음 진행 == * Chapter 7 * 객체지향 프로그래밍 2 * 발표 : [김용준] == 과제 == * [https://www.google.co.kr/url?sa=t&source=web&rct=j&ei=rtHFU7XxMMXk8AXSq4LwCQ&url=http://fortune94.tistory.com/attachment/cfile10.uf%40223FCA45524E568F2C46C1.pdf&cd=3&ved=0CCYQFjAC&usg=AFQjCNFN4ldn4rztksHRCooww_mF_0vzaA&sig2=si4JLRUgqS_1qN0Ca_mk5Q 다운로드 링크] 과제 2번까지. == 후기 == * 위키를 한번 쓰다 날려 내용을 도저히 못쓰겠습니다 - [유재범] * 내가 대략 정리해서 써놓을게 ㅡㅡㅋ -[최다인] ----- [한자공/시즌3]