반응형

JAVA/소설같은자바 59

클래스와 메서드 결론

□ 클래스의 구성 ◇ 클래스 = 데이터 + 메서드 ◇ 클래스 = 구조체 + 메서드 □ 멤버 변수와 멤버 메서드의 관계 ◇ 멤버 변수를 사용하지 않는 메서드는 클래스 내에 넣을 필요가 없다. □ 메서드로 이루어진 클래스 ◇ 4칙 연산을 위한 메서드를 하나의 클래스에 집어 넣어서 하나의 이름으로 4칙연산 메서드를 묶어서 관리할 수 있다.

변수와 메서드의 분리와 결합

□ 데이터와 메서드가 분리되어 있을 때의 문제점 ◇ 메서드를 호출할 때마다 데이터를 매개변수로 넘겨주어야 한다. ◇ 특정 데이터를 사용하는 메서드가 몇 개인지 알 수 없다. ◇ 특정 데이터를 사용하는 메서드를 묶어서 관리할 수 없다. □ 데이터 1 도면 r; □ 메서드 1 2 3 4 5 6 7 8 9 void 선그리기(도면 w){ //선그리기 작업 } void 원그리기(도면 w){ //원그리는 작업 } void 사각형그리기(도면 w){ //사각형그리는 작업 } □ 데이터와 메서드가 분리된 상태에서 메서드의 호출 1 2 3 4 5 6 도면 r; 선그리기(r); 선그리기(r); 원그리기(r); 원그리기(r); 사각형그리기(r); □ WhiteBoard 클래스 1 2 3 4 5 6 public class Wh..

변수와 메서드 결합의 의미 II

□ UnitedData 클래스의 특징 ◇ 데이터를 멤버 변수로 보유한 상태에서 메서드를 호출한다. 그렇기 때문에 메서드를 호출할 때 매개변수를 통해서 데이터를 넣어줄 필요가 없다. ◇ 변수와 메서드가 결합된 형태로 멤버 변수를 멤버 메서드가 이용하는 예를 보여주고 있다. □ 메서드와 변수가 결합된 형태의 클래스 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class UnitedData { public int x; //멤버 변수의 선언 public int y; //멤버 변수의 선언 public int plus() {//멤버 메서드의 선언 return x + y; } public int minus(){//멤버 메서드의 선언 return x - y; } public int..

변수와 메서드 결합의 의미 I

□ 질문 ◇ 왜 변수들의 집합인 구조체에 메서드를 추가했을까? □ 테스트할 클래스 ◇ 메서드로만 이루어진 클래스(SeparatedData 클래스) ◇ 메서드와 변수가 결합된 클래스(UnitedData 클래스) □ SeparatedData 클래스의 특징 ◇ 메서드로만 이루어진 클래스는 메서드를 호출할 때마다 필요한 데이터를 넣어 주어야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** 메서드로만 이루어진 클래스 **/ public class SeparatedData { public int plus(int x, int y) {//멤버메서드 return x + y; } public int minus(int x, int y){//멤버메서드 return x ..

클래스 내의 메서드

□ 클래스에 메서드를 포함시킨 예 Top.java 1 2 3 4 5 6 7 8 9 10 11 12 13 /** 클래스에 메서드를 포함시킨 예 **/ public class Top{ public int a; //멤버변수 public int b; //멤버변수 public int sum(int x, int y) {//sum 메서드의 선언 return x + y; } } /*** c:\javasrc\chap03>javac Top.java ***/ □ 클래스를 테스트하는 예 1 Top t = new Top(); // Top 객체 생성 2 t.a = 100; // 멤버 변수 a에 값 할당 3 t.b = 200; // 멤버 변수 b에 값 할당 4 int s = t.sum(3, 5); // sum() 메서드 호출한 후..

값복사가 적용되는 곳

□ 값복사의 중요성 ◇ 앞에서 배운 값복사라는 개념은 너무나도 단순한 개념이다. ◇ 원리는 단순하지만 이 원리를 알면 많은 것들이 해결된다. □ 값복사라는 용어가 적용되는 곳 ◇ 값의 의한 호출(메서드의 매개변수 전달) ◇ 참조값 할당(참조값 값복사) □ 값복사라는 용어 ◇ 컴퓨터 용어에서 값복사는 범용적인 용어가 아니다. ◇ 메모리에 들어 있는 값을 다른 메모리로 그 값만을 복사한다 하여 필자가 붙인 이름이다.

값복사와 매개변수의 전달

□ 매개변수의 전달 ◇ 자바의 매개변수의 전달은 값복사의 기법만을 사용한다. ◇ 이것을 값에 의한 호출(Call By Value) 또는 값복사에 의한 호출이라고 한다. □ sumB() 메서드의 선언 1 2 3 4 5 int sumB(int x, int y){ int c; c = x + y; return c; } □ 메서드의 호출 1 2 3 int a = 3; int b = 4; int c = sumB(a,b); □ 값복사의 예 I ◇ x = a; //메서드를 호출할 때 값복사 발생 ◇ y = b; //메서드를 호출할 때 값복사 발생 ◇ c = sumB(a,b); //메서드의 리턴값을 c의 메모리에 값복사 □ 값복사의 예 II ◇ int a = 3; ◇ int b = 4; ◇ c = x + y;

리턴과 매개변수

▒ 기본 데이터 타입 변수의 선언 1 int a; □ int a의 분해 ◇ 데이터 타입 : int ◇ 변수 : a ▒ sumB() 메서드의 선언 1 2 3 4 5 int sumB(int x, int y){ int c; c = x+ y; return c; } □ sumB()의 분해 ◇ 리턴형 : int ◇ 메서드이름 : sumB ◇ 매개변수 : (int x, int y) ◇ 작업의 내용 : { .... } ◇ 종료키워드 : return ◇ 리턴값 : c □ 참고 ◇ 메서드 내부의 변수 c는 지역 변수이며, 매개변수 x, y 또한 지역 변수이다. ◇ 변수 x, y는 메서드 외부와 연결된 지역변수에 해당한다.

메서드는 변수다.

□ 변수와 메서드의 할당 I 1 2 int a = 7; sumB(3, 4); □ 변수와 메서드의 할당 II 1 2 3 int a = 7; int b = a; int c = sumB(3, 4); □ 변수의 재할당 1 2 int a = 7; a = 10; □ 메서드의 재할당 1 2 int c = sumB(3, 4); c = sumB(5, 5); □ 기본 데이터 타입 변수와 메서드의 차이점 ◇ 기본 데이터 타입 변수는 직접할당을 원칙으로 한다. ◇ 메서드는 간접할당을 원칙으로 한다.

반응형