사용자 도구

사이트 도구


notepad:kamajaki0601

문서의 이전 판입니다!


객체지향 설계 수업

4/5일 목

수퍼클래스 = 부모클래스 = 상위클래스 = 기본클래스
서브클래스 = 자식클레스 = 하위클래스 = 파생클래스

클레스 상속 캡슐화 다형성 개념

(1) AvgTest.java

class Avg {

String name;

name는 문자열의 첫 번째 문자의 주소를 기억하고 있을 참조변수(c에서는 포인터, java에서는 String 클래스에 만들어져 있음) 4바이트

int avg;

4바이트 Avg(){} ⇒ 생략되어 있는 생성자(초기화 메소드) 클래스명과 동일한 이름 사용함

public String average(int kor, int eng)
{

메소드(반환형으 String ⇒ 문자열의 첫 번째 문자의 주소가 반환됨) 매개변수로 kor과 eng

	avg = (kor+eng)/2;

정수형(왼쪽) = 정수형(오른쪽)

	return name+avg;

+의 의미는 문자열 연결(문자열+정수 ⇒ 문자열+문자열)

}

}

public class AvgTest {

public static void main(String[] args) {

Static : 객체를 생성하지 않아도 사용할 수 있게 하기 위해서(항상 main()메소드에서 실행이 시작됨) 메모리상에 먼저 올려놓음 (String[] args) ⇒ (String args[]) ⇒ C에서는 (int argc, char* argv[])와 같은 것

C프로그램 실행:….>Cpro.exe 123 456

⇒ argv[0]에는 “cpro.exe”에서 'c'의 주소가 들어감 ⇒ argv[1]에는 “cpro.exe”에서 '123'의 '1'의 주소가 들어감 ⇒ argv[2]에는 “cpro.exe”에서 '456'의 '4'의 주소가 들어감

자바 프로그램 실행

⇒java AvgTest 123 456 ⇒ argv[0]에는 “123”에서 '1'의 주소가 들어감 ⇒ argv[1]에는 “456”에서 '4'의 주소가 들어감

	Avg student1 = new Avg();

Avg student1; 와 student1 = new Avg(); 두 줄 합친 것

	Avg student2 = new Avg();

Avg student2; 와 student2 = new Avg(); 두 줄 합친 것

(1) Avg student2; 는 Avg 클래스의 주소가 기억될 참조변수 student2를 선언함
(2) Avg()는 생성자(객체를 초기화하는 메소드) 호출
(3) new Avg() ⇒ Avg 클래스의 객체를 생성하면서 Avg를 통해서 초기화함(메모리에 잡힘)
(4) student2 = new Avg(); ⇒ 메모리에 잡힌 객체의 주소를 student2에 할당(배정, 대입)함
c++에서는 new를 사용하면 반드시 delete(동적할댕했던 힙 영역의 메모리 해제)를 같이 사용해야 함(c에서는 malloc()/calloc()~free())

	student1.name = "김철수";
	student2.name = "김영희";
	String st1_avg = student1.average(70,80);

String st1_avg;
st1_avg = student1.average(70,80);
위 두라인을 합친 것

	String st2_avg = student2.average(80,90);
	System.out.println(st1_avg);
	System.out.println(st2_avg);
}

}

Q 컴파일 후 생성되는 파일명 두 개 작성?
클래스명과 메소드명에 대한 관례상 작성 방법?
출력결과?

notepad/kamajaki0601.1333588614.txt.gz · 마지막으로 수정됨: 2012/04/05 10:16 저자 kamajaki0601