필드(Field)...메소드(Method)...
작성자 정보
- 작성자 최고관리자
- 작성일
컨텐츠 정보
- 조회 418
본문
필드(field)
필드(field) : 클래스 안에서 선언되는 멤버 변수
지역 변수(local variable) : 메소드, 블록 안에서 선언되는 변수
매개 변수(parameter) : 메소드 선언에서의 변수
필드를 선언 할 때는 접근 지정자, 필드의 타입, 필드의 이름 세가지를 정해줘야 한다.
접근 지정자에는 public과 private가 있으며, public은 모든 클래스로 부터 접근 가능, private는 클래스 내부에서만 접근 가능.
접근자와 설정자
접근자(accessor) : 필드 값을 반환한다. 일반적으로 게터(getter) 라고 부르기도 한다.
설정자(mutator) : 필드 값을 설정한다. 일반적으로 세터(setter) 라고 부르기도 한다.
접근자와 설정자를 사용하면 다음과 같은 장점이 있다.
접근자에서 잘못된 값이 넘어오는 경우 필터링을 통해 사전 차단 가능
필요할 때 마다 필드 값 계산해서 반환 가능(?)
설정자를 제공하지 않을 경우 읽기만 가능한 필드 생성 가능
대충 다음과 같은 느낌이다.
메소드 (method)
메소드를 선언할 때는 접근 지정자, 반환형, 매개변수, 메소드 내부 내용이 필요하다.
위 소스에서는 접근 지정자 public, 반환형 void, 매개변수 int w와 int l, 메소드 내부 내용 width = w; length = l;
C에서 값을 전달할 때는 값에 의한 전달(Call by Value)와 참조를 통한 전달(Call by Reference) 두 가지가 있지만 자바에는 값에 의한 전달(Call by Value) 한 가지 밖에 없다.
매개변수의 자료형이 다르면 메소드의 이름은 같아도 된다. 이러한 메소드들을 중복 메소드라고 한다. 하지만 중복 메소드는 코드 해석을 어렵게 만들 수 있으므로 주의깊게 사용해야 한다.
가변 길이 인수(variable-length arguments) : JDK 5 부터 다수의 인수를 넘겨야할 때 인수의 총 갯수를 지정해주지 않고도 가변적 개수의 인수들을 전달할 수 있다. 가변 길이 인수를 사용하기 위해서는 다음과 같이 매개 변수 자리에 (자료형 ... 변수 이름) 이렇게 사용하면 된다.
VarArgsTest.java
결정자, 접근자에 대한 개념과 참조 변수의 개념 정도가 중요할 것 같고, 가변 길이 변수도 알아두면 유용할 것 같다.
BoxTest.java
필드(field) : 클래스 안에서 선언되는 멤버 변수
지역 변수(local variable) : 메소드, 블록 안에서 선언되는 변수
매개 변수(parameter) : 메소드 선언에서의 변수
class
{
public int speed //필드
{
void start(int s) //매개 변수
{
int t; //지역 변수
}
}
}
필드를 선언 할 때는 접근 지정자, 필드의 타입, 필드의 이름 세가지를 정해줘야 한다.
접근 지정자에는 public과 private가 있으며, public은 모든 클래스로 부터 접근 가능, private는 클래스 내부에서만 접근 가능.
접근자와 설정자
접근자(accessor) : 필드 값을 반환한다. 일반적으로 게터(getter) 라고 부르기도 한다.
설정자(mutator) : 필드 값을 설정한다. 일반적으로 세터(setter) 라고 부르기도 한다.
접근자와 설정자를 사용하면 다음과 같은 장점이 있다.
접근자에서 잘못된 값이 넘어오는 경우 필터링을 통해 사전 차단 가능
필요할 때 마다 필드 값 계산해서 반환 가능(?)
설정자를 제공하지 않을 경우 읽기만 가능한 필드 생성 가능
대충 다음과 같은 느낌이다.
class Car {
String color;
public String getColor() //접근자
{
return color;
}
public void setColor(String c) //설정자
{
color = c;
}
}
public class CarTest1{
public static void main(String[] args) {
Car myCar = new Car();
myCar.setColor = "RED"; //설정자 사용
System.out.println(myCar.getColor); //접근자 사용
}
}
메소드 (method)
public void setSize(int w, int l) {
width = w;
length = l;
}
메소드를 선언할 때는 접근 지정자, 반환형, 매개변수, 메소드 내부 내용이 필요하다.
위 소스에서는 접근 지정자 public, 반환형 void, 매개변수 int w와 int l, 메소드 내부 내용 width = w; length = l;
C에서 값을 전달할 때는 값에 의한 전달(Call by Value)와 참조를 통한 전달(Call by Reference) 두 가지가 있지만 자바에는 값에 의한 전달(Call by Value) 한 가지 밖에 없다.
매개변수의 자료형이 다르면 메소드의 이름은 같아도 된다. 이러한 메소드들을 중복 메소드라고 한다. 하지만 중복 메소드는 코드 해석을 어렵게 만들 수 있으므로 주의깊게 사용해야 한다.
가변 길이 인수(variable-length arguments) : JDK 5 부터 다수의 인수를 넘겨야할 때 인수의 총 갯수를 지정해주지 않고도 가변적 개수의 인수들을 전달할 수 있다. 가변 길이 인수를 사용하기 위해서는 다음과 같이 매개 변수 자리에 (자료형 ... 변수 이름) 이렇게 사용하면 된다.
VarArgsTest.java
class Test {
void sub(int... v) { //가변 길이 인수 사용
System.out.println("인수의 개수 : " + v.length);
for (int x : v)
System.out.print(x + " ");
System.out.println();
}
}
public class VarArgsTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test c = new Test();
c.sub(1);
c.sub(2, 3, 4, 5, 6);
c.sub();
}
}
결정자, 접근자에 대한 개념과 참조 변수의 개념 정도가 중요할 것 같고, 가변 길이 변수도 알아두면 유용할 것 같다.
BoxTest.java
class Box {
// 필드 정의
int width;
int length;
int height;
// 메소드 정의
// 각 필드 설정자
void setWidth(int num) {
this.width = num;
}
void setLength(int num) {
this.length = num;
}
void setHeight(int num) {
this.height = num;
}
// 각 필드 접근자
int getWidth() {
return this.width;
}
int getLength() {
return this.length;
}
int getHeight() {
return this.height;
}
// 부피 계산 메소드
int getVolume() {
return this.height * this.length * this.width;
}
// 상태 출력 메소드
void print() {
System.out.println("상자의 너비 : " + this.getWidth());
System.out.println("상자의 길이 : " + this.getLength());
System.out.println("상자의 높이 : " + this.getHeight());
System.out.println("상자의 부피 : " + this.getVolume());
}
}
public class BoxTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Box box1 = new Box();
// box1 설정자 사용
box1.setHeight(100);
box1.setLength(100);
box1.setWidth(100);
// box1.getVolume(), print() 호출
box1.getVolume();
box1.print();
Box box2 = new Box();
// /box2 설정자 사용
box2.setHeight(200);
box2.setLength(200);
box2.setWidth(200);
// box2.getVolum(), print() 호출
box2.getVolume();
box2.print();
// box2에 box1 대입 후 상태 출력
box1 = box2;
box1.print();
}
}
관련자료
-
이전
-
다음
댓글 0개
등록된 댓글이 없습니다.