Java, android 스터티2

Preview:

Citation preview

JAVA, Android 스터디

2015.04.07

김희준

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0. 지난주 복습

0.5 지난주 과제

홀수숫자만 있는 구구단 소용돌이

1. 클래스

• 생성자의 특징

– 생성자는 메소드(생성자도 함수이다!!)

– 생성자 이름은 클래스 이름과 동일

– 생성자는 new를 통해 객체를 생성할 때만 호출됨

– 생성자도 오버로딩 가능

– 생성자는 리턴 타입을 지정할 수 없다.

– 생성자는 하나 이상 선언되어야 함

• 개발자가 생성자를 정의하지 않으면 자동으로 기본 생성자 정의됨

– 컴파일러에 의해 자동 생성

– 기본 생성자를 디폴트 생성자(default constructor)라고도 함

1. 클래스(생성자)

1. 클래스(생성자)

콘솔창에 출력시->

• EX 1)

- 자신의 학번과 이름을 받을 수 있는 클래스를 만든다.

(학번 -> int형 , 이름 -> String 객체)

- 생성자 4개 만들기

( 그냥 생성, 학번을 가지고 생성, 이름을 가지고 생성,

학번과 이름을 가지고 생성)

- 학번 이나 이름을 안주고 만든 클래스는 0과”none”으로 초기화

1. 클래스(생성자)

• EX 1)

- 자신의 학번과 이름을 받을 수 있는 클래스를 만든다.

(학번 -> int형 , 이름 -> String 객체)

- 생성자 4개 만들기

( 그냥 생성, 학번을 가지고 생성, 이름을 가지고 생성,

학번과 이름을 가지고 생성)

- 학번 이나 이름을 안주고 만든 클래스는 0과”none”으로 초기화

1. 클래스(생성자)

1. 클래스(생성자)

힌트 :class (클래스명){ //클래스

(클래스명) (){ //생성자…..

}}

1. 클래스(생성자)

힌트 :class (클래스명){ //클래스

(클래스명) (){ //생성자…..

}}

힌트 :class (클래스명){ //클래스

(클래스명) (){ //생성자this.(변수명) = …

}}

1. 클래스(생성자)

1. 클래스(생성자)

2. 클래스(접근지정자)

23

private 접근 지정자 사례

public 접근 지정자 사례

2. 클래스(접근지정자)

protected 접근 지정자 사례

default 접근 지정자 사례

24

2. 클래스(접근지정자)

2. 클래스(접근지정자)

• EX 2)

- EX1에서 작성한 프로그램을 이용해서 접근지정자 예제 실습

- 학번정보를 “private”로 설정 한다.

- 객체(인스턴스)생성시 기본생성자로 생성한다.

- 학번정보를 수정하고 얻을 수 있는 메소드 2개를 작성한다.

2. 클래스(접근지정자)

• EX 2)

- EX1에서 작성한 프로그램을 이용해서 접근지정자 예제 실습

- 학번정보를 “private”로 설정 한다.

- 객체(인스턴스)생성시 기본생성자로 생성한다.

- 학번정보를 수정하고 얻을 수 있는 메소드 2개를 작성한다.

- 학번

2. 클래스(접근지정자)

• EX 2)

- EX1에서 작성한 프로그램을 이용해서 접근지정자 예제 실습

- 학번정보를 “private”로 설정 한다.

- 객체(인스턴스)생성시 기본생성자로 생성한다.

- 학번정보를 수정하고 얻을 수 있는 메소드 2개를 작성한다.

2. 클래스(접근지정자)

힌트 :class (클래스명){ //클래스

…….private (변수명)getNum // 메소드setNum // 메소드

}

2. 클래스(접근지정자)

힌트 :class (클래스명){ //클래스

…….private (변수명)getNum // 메소드setNum // 메소드

}

힌트 :public int getNum(){

return …..}puvlic setNum(int st_number){}

2. 클래스(접근지정자)

• 객체 배열 생성 및 사용

31

3. 클래스(객체배열)

32

public static void main(String [] args) {Person[] pa;pa = new Person[10];for (int i=0;i<pa.length;i++) {

pa[i] = new Person();pa[i].age = 30 + i;

}

for (int i=0;i<pa.length;i++)System.out.print(pa[i].age+” “);

}

30 31 32 33 34 35 36 37 38 39

3. 클래스(객체배열)

3. 클래스(객체배열)

• EX 3)

- EX2에서 작성한 프로그램을 이용해서 객체배열 예제 실습

- 4개의 객체배열을 생성한다(기본생성자 이용)

- 객체배열에 학번값을 넣어준다.(20xxxxxxx0, 20xxxxxxx1 …)

- 학번값 출력

3. 클래스(객체배열)

• EX 3)

- EX2에서 작성한 프로그램을 이용해서 객체배열 예제 실습

- 4개의 객체배열을 생성한다(기본생성자 이용)

- 객체배열에 학번값을 넣어준다.(20xxxxxxx0, 20xxxxxxx1 …)

- 학번값 출력

3. 클래스(객체배열)

힌트 :(클래스명) (변수이름)[] = new (클래스명)[ … ]

3. 클래스(객체배열)

힌트 :(클래스명) (변수이름)[] = new (클래스명)[ … ]

힌트 :for(….;….;…..)

{(변수이름)[] = 생성자…..…..

}

3. 클래스(객체배열)

• 클래스

- 클래스는 생성자를 이용해 상속 받을 때 초기화 시킬 수 있다.

- 오버로딩이 지원되므로 여러 개의 생성자를 이용 가능하다.

- 모두 사용할 수 있는 접근지정자 public

- 해당 클래스만 사용할 수 있는 접근지정자 private

- private인 경우 해당 클래스 내 public 메소드 이용 접근 가능

- 객체도 레퍼런스 변수이다.(포인터의 개념과 유사)

- 따라서 객체배열 생성시 2차원 배열이 생성된다.

4. 정리

• EX 4 + HW2)

- 끝말잇기(228p) // 공연예약 시스템(237p) // 로또번호 추첨

- 위 세가지 과제 중 택 1하여 다음주 시연

- 시연 후, 알고리즘 및 코드내용 설명(주석 필요없음)

- 컨트롤 c + v 가능, 대신 설명가능 해야함.

- 클래스를(두 개 이상) 이용하여 구현하기

4. 정리

• EX 4 + HW2) 샘플(끝말잇기)

4. 정리

Q & A

Thank you!!