목차
필드와 메소드
- 클래스와 객체
- 메소드
- 필드
이전 요약
- 객체는 속성과 동작을 가지고 있다.
- 객체는 클래스라는 틀로 만든 하나의 객체
- 속성은 해당 객체의 변수
- 동작은 해당 객체의 함수 혹은 동작을 하는 부분
변수의 종류
- 필드(field) : 클래스 안에서 선언되는 멤버 변수, 인스턴스 변수라고도 한다.
- 지역 변수(local variable) : 메소드나 블록 안에서 선언되는 변수
- 매개 변수(parameter) : 메소드 선언에서의 변수
class test {
public int speed; // 필드
void start(int s) { // int s 는 매개 변수
int tmp; // 지역 변수 해당 메소드 실행이 끝나면 사라진다.
}
}
필드의 선언
public int speed;
public : 접근 지정자
int : 필드의 타입
speed : 필드의 이름
필드의 접근 지정자는 어떤 클래스가 필드에 접근이 가능한지를 정한다.
public : 이 필드는 모든 클래스로부터 접근이 가능
private : 클래스 내부에서만 접근이 가능
필드의 사용 범위
public class test {
public void print() {
System.out.println(year, month, day);
}
// 필드 선언
private int year;
private int month;
private int day;
}
- 필드는 선언 위치와는 상관없이 해당 클래스 어디서나 사용이 가능하다.
필드의 초기화
- 필드는 선언과 동시에 초기화 가능
public class test {
public static int s = 10;
private boolean use = false;
}
- static은 정적 필드를 뜻함, 추후 설명
설정자(setter)와 접근자(getter)
- 설정자(mutator)
- 필드의 값을 설정하는 메소드
- setXXX( ) 형식
- 접근자(accessor)
- 필드의 값을 반환하는 메소드
- getXXX( ) 형식
public class test {
private String color;
public String getColor() {
return color;
}
public void setColor(String c) {
this.color = c;
}
}
public class test1 {
public static void main(String[] args) {
// 객체 생성
test t = new test();
t.setColor("black");
System.out.println(t.getColor());
}
}
실행 결과 : black
설정자와 접근자는 왜 사용하는가?
- 설정자에서 매개 변수를 통하여 잘못된 값이 넘어오는 경우, 이를 사전에 차단할 수 있다.
- 필요할 때 마다 필드값을 계산하여 반환할 수 있다.
- 접근자만을 제공하면 자동적으로 읽기만 가능한 필드를 만들 수 있다.
// 예시
public void setSpeed(int s) {
if (s < 0)
speed = 0;
else
this.speed = s;
}
- 위의 예시는 s가 음수이면 0으로 대치하고 0이 아니면 매개 변수의 값을 필드에 대입한다.
지역 변수
- 메소드 안에 선언
- 메소드의 매개 변수도 지역 변수의 일종이다.
- 지역 변수는 무조건 초기화를 하고 사용해야 한다.
- 메소드/사용 (이)가 끝나면 자동으로 메모리에서 삭제됨
변수와 변수의 비교
- ”변수1 == 변수2” 사용 시 주의하여 사용하여야 된다.
- 기초형 변수일 경우 데이터 값이 같은지를 확인하여 boolean로 반환하여 주는게 맞지만, 참조형 변수일 경우 메모리 참조 값이 같은 지 확인하기 때문에 사용자의 의도와 다르게 사용 될 수 있다.
- 내용이 같은 지를 검사하려면 equals( ) 메소드 를 사용하는 것이 정확하게 검사할 수 있다.
메소드
- 메소드는 객체가 할 수 있는 기능을 나타낸다.
- 메소드 == 클래스 안에 포함된 함수
매개변수 기초형 변수 작동 과정
Car t = new Car();
x = 10;
t.speedUp(x);
public void speedUp(int i) {
this.speed += i; // 매개 변수는 외부에서 값을 전달 받아 변수로 사용될 수 있다.
}
- 매개 변수가 기초형 변수일 경우, 값이 복사된다.
매개변수 참조형 변수 작동 과정
- 매개 변수가 참조형 변수일 경우 메모리 참조값이 매개변수로 전달된다.
Car t1 = new Car();
Car t2 = new Car();
t1.speedEquals(t2);
public int speedEquals(Car tmp) {
if (this.speed == tmp.speed )
return true;
else
return false;
}
- t1와 t2 객체의 speed 필드 값을 비교하는 메소드이다.
메소드 반환
- 메소드는 작업의 결과값을 반환 할 수 있습니다.
- 반환값은 하나만 가능합니다.
public int getSpeed() {
return speed;
}
....
Car t1 = new Car();
int val = t1.getSpeed();
- 메소드의 int 부분은 반환값을 정의한다.
- 메소드의 반환값 타입과 메소드 정의할 때 반환하는 데이터 타입이 다르면 오류 발생
필드와 메소드
- 클래스와 객체
- 메소드
- 필드
이전 요약
- 객체는 속성과 동작을 가지고 있다.
- 객체는 클래스라는 틀로 만든 하나의 객체
- 속성은 해당 객체의 변수
- 동작은 해당 객체의 함수 혹은 동작을 하는 부분
변수의 종류
- 필드(field) : 클래스 안에서 선언되는 멤버 변수, 인스턴스 변수라고도 한다.
- 지역 변수(local variable) : 메소드나 블록 안에서 선언되는 변수
- 매개 변수(parameter) : 메소드 선언에서의 변수
class test {
public int speed; // 필드
void start(int s) { // int s 는 매개 변수
int tmp; // 지역 변수 해당 메소드 실행이 끝나면 사라진다.
}
}
필드의 선언
public int speed;
public : 접근 지정자
int : 필드의 타입
speed : 필드의 이름
필드의 접근 지정자는 어떤 클래스가 필드에 접근이 가능한지를 정한다.
public : 이 필드는 모든 클래스로부터 접근이 가능
private : 클래스 내부에서만 접근이 가능
필드의 사용 범위
public class test {
public void print() {
System.out.println(year, month, day);
}
// 필드 선언
private int year;
private int month;
private int day;
}
- 필드는 선언 위치와는 상관없이 해당 클래스 어디서나 사용이 가능하다.
필드의 초기화
- 필드는 선언과 동시에 초기화 가능
public class test {
public static int s = 10;
private boolean use = false;
}
- static은 정적 필드를 뜻함, 추후 설명
설정자(setter)와 접근자(getter)
- 설정자(mutator)
- 필드의 값을 설정하는 메소드
- setXXX( ) 형식
- 접근자(accessor)
- 필드의 값을 반환하는 메소드
- getXXX( ) 형식
public class test {
private String color;
public String getColor() {
return color;
}
public void setColor(String c) {
this.color = c;
}
}
public class test1 {
public static void main(String[] args) {
// 객체 생성
test t = new test();
t.setColor("black");
System.out.println(t.getColor());
}
}
실행 결과 : black
설정자와 접근자는 왜 사용하는가?
- 설정자에서 매개 변수를 통하여 잘못된 값이 넘어오는 경우, 이를 사전에 차단할 수 있다.
- 필요할 때 마다 필드값을 계산하여 반환할 수 있다.
- 접근자만을 제공하면 자동적으로 읽기만 가능한 필드를 만들 수 있다.
// 예시
public void setSpeed(int s) {
if (s < 0)
speed = 0;
else
this.speed = s;
}
- 위의 예시는 s가 음수이면 0으로 대치하고 0이 아니면 매개 변수의 값을 필드에 대입한다.
지역 변수
- 메소드 안에 선언
- 메소드의 매개 변수도 지역 변수의 일종이다.
- 지역 변수는 무조건 초기화를 하고 사용해야 한다.
- 메소드/사용 (이)가 끝나면 자동으로 메모리에서 삭제됨
변수와 변수의 비교
- ”변수1 == 변수2” 사용 시 주의하여 사용하여야 된다.
- 기초형 변수일 경우 데이터 값이 같은지를 확인하여 boolean로 반환하여 주는게 맞지만, 참조형 변수일 경우 메모리 참조 값이 같은 지 확인하기 때문에 사용자의 의도와 다르게 사용 될 수 있다.
- 내용이 같은 지를 검사하려면 equals( ) 메소드 를 사용하는 것이 정확하게 검사할 수 있다.
메소드
- 메소드는 객체가 할 수 있는 기능을 나타낸다.
- 메소드 == 클래스 안에 포함된 함수
매개변수 기초형 변수 작동 과정
Car t = new Car();
x = 10;
t.speedUp(x);
public void speedUp(int i) {
this.speed += i; // 매개 변수는 외부에서 값을 전달 받아 변수로 사용될 수 있다.
}
- 매개 변수가 기초형 변수일 경우, 값이 복사된다.
매개변수 참조형 변수 작동 과정
- 매개 변수가 참조형 변수일 경우 메모리 참조값이 매개변수로 전달된다.
Car t1 = new Car();
Car t2 = new Car();
t1.speedEquals(t2);
public int speedEquals(Car tmp) {
if (this.speed == tmp.speed )
return true;
else
return false;
}
- t1와 t2 객체의 speed 필드 값을 비교하는 메소드이다.
메소드 반환
- 메소드는 작업의 결과값을 반환 할 수 있습니다.
- 반환값은 하나만 가능합니다.
public int getSpeed() {
return speed;
}
....
Car t1 = new Car();
int val = t1.getSpeed();
- 메소드의 int 부분은 반환값을 정의한다.
- 메소드의 반환값 타입과 메소드 정의할 때 반환하는 데이터 타입이 다르면 오류 발생