1. 객체와 인스턴스
클래스를 인스턴스화 한 것이 인스턴스(객체)이다. 객체의 구성요소로는 속성과 기능이 있으며 여기서 속성이란 멤버 변수를 의미하고 기능이란 메서드(함수)를 의미한다.
Ex).
Class Tv{
String color;
Boolean power;
.....
void power() {power =! power;} //껐다 켰다 true, false로 변경 가능
void channelUp()
.......
}
2. 인스턴스의 생성과 사용
Tv t1 = new Tv();
Tv t2 = new Tv();
t2=t1; //t1이 저장하고 있는 값(주소)을 t2에 저장하면서 참조 변수 t2가 가리키는 인스턴스는 가비지 컬렉터에 의해 자동적으로 메모리에서 제거된다.
t1. color = red; //참조 변수. 멤버 변수 이런 형태로 사용
3. 객체 배열 -> 이건 언제 쓸까????
Tv [] tvArr = new Tv [3]; //참조 변수 배열(객체 배열)을 생성
//객체를 생성해서 배열의 각 요소에 저장
tvArr [0] = new Tv();
tvArr [1] = newTv();
tvArr [2] = newTv();
4. 변수와 메서드
1. 변수(클래스 변수, 인스턴스 변수, 지역변수 - 변수의 선언된 위치에 따라)
- -멤버 변수 (클래스 영역에 존재) 중
1) static이 붙으면 클래스 변수 =
인스턴스들이 공통적인 값을 유지해야 하는 속성의 경우 클래스 변수로 선언, '클래스 이름. 클래스 변수' 같은 형태로 사용됨.
2) static이 붙지 않으면 인스턴스 변수
-> 맴버변수(클래스, 인스턴스변수) 는 클래스 영역에만 선언 가능하고, 클래스 전체 영역에서 사용된다.
- 지역변수 = 메서드 영역 내에 존재
Ex)
Class Variables {
int iv; (인스턴스 변수)
static int cv; //클래스 변수(static 변수, 공유 변수)
void method()
{
int lv =0; //지역변수
}
}
2. 메서드
int add(int a, int b)
{
int result = a+b;
return result;
}
메서드에 선언되는 매개변수의 타입은 생략될 수 없고 매개변수도 메서드 내에 선언된 것으로 간주되기 때문에 지역변수이다.
*인자(argument)와 매개변수(parameter)
public static void main(String args[])
{
...
int result = add(3,5); // 여기서 3, 5 인자
}
int add(int x, int y){ // x,y가 매개변수
int result = x+y;
return result;
}
3. 매개변수의 유효성 검사
메서드의 구현부를 작성할 때 제일먼저 해야할 일은 매개변수의 값이 적절한지 확인하는 것
예를 들어
float divide(int x, int y){
// 작업을 하기 전에 나누는 수(y)가 0인지 확인해야
if(y==0){
System.out.println("0으로 나눌 수 없습니다.")
return 0;
}
return x/ (float)y;
}
'Back-end > Java Language' 카테고리의 다른 글
JVM(Java Virtual Machine)? (0) | 2021.06.04 |
---|---|
함수의 호출 방법 : Call By Value와 Call By Reference (0) | 2021.06.03 |
접근 제어자(access modifier) (0) | 2021.05.25 |
0. equals()와 hashcode() (0) | 2021.05.24 |
0. Java-iterator에 관하여 (0) | 2021.04.03 |