
1-2. 객체를 구성하는 단위
1-3. 클래스와 객체의 관계
1-4. 클래스
1-5. 클래스의 기본 작성 방법
class 클래스 이름{
멤버변수;
void 메서드 이름(){
....
}
}
-> class라는 예약어와 클래스의 이름을 명시하고 {...}블록을 구성한다.
-> 멤버변수는 여러개 존재할 수 있다. 이 때, 값을 선언과 동시에 할당할 수도 있고, 객체를 통해 간접적으로 할당할 수도 있다.
-> 메서드는 여러개 존재할 수 있다.
-> 클래스 안에 포함된 멤버변수와 메서드를 특성에 따라 그룹화 하기 위한 기법이 클래스를 작성하는 것이라고 이해할 수 있다.
1-6. 객체의 생성 방법
객체의 선언
클래스이름 객체이름;
객체의 할당
객체이름 = new 클래스이름();
선언과 할당의 통합
클래스이름 객체이름 = new 클래스이름();
1-7. 객체의 사용
객체 안에 포함된 변수나 메서드는 점(.)으로 연결하여 접근한다.
-> 값에 대한 접근
객체이름.멤버변수;
-> 객체 안에 포함된 변수의 값을 다른 변수에 복사하는 경우
변수 = 객체이름.멤버변수;
-> 객체 안에 포함된 변수의 값에 다른 값을 대입하는 경우
객체이름.멤버변수 = 값;
-> 객체 안에 포함된 메서드를 호출하는 경우
객체이름.메서드이름();
-> 객체 안에 포함된 메서드에 파라미터를 전달하는 경우
객체이름.메서드이름(값1, 값2, ..);
1-8. 클래스의 멤버변수
같은 클래스를 통하여 생성된 객체라 할지라도 서로 다른 값을 대입하면 서로 독립적인 형태로 존재하게 된다.
std.name = "이순신";
std.age = 20;
std2.name = "홍길동"
std2.age = 30;
값이 대입되지 않은 멤버변수를 갖는 클래스
-> 클래스란 객체를 위한 틀을 제공하는 것이기 때문에 클래스 작성과정에서 멤버변수에 대입된 값은, 객체를 통하여 멤버변수의 값을 지정하기 전까지 사용될 "기본값"으로서의 의미이다.
-> 객체를 통하여 새로운 값이 대입되면 클래스 작성시에 멤버변수에 대입한 값은 의미를 잃어버리게 된다.
-> 때문에 일반적으로 클래스 작성시에는 멤버변수에 값을 지정하지 않는다.
1-9. 메서드를 포함하는 클래스
1-10. 변수의 종류
1-11. null
java에서 null은 참조 변수가 어떤 객체도 가리키지 않음을 나타내는 특별한 값이다.
기본 데이터타입에서는 쓸 수 없다.
int a = null; // error
double b = null; // eror
String c = null; // 가능
int[] d = null; // 가능
1-12. 메서드만 포함하는 클래스
객체 안에 멤버변수(=데이터)가 포함되지 않는다.
객체 안에 포함된 메서드를 호출하여 결과를 만들기 위한 목적이므로 굳이 여러 개의 객체를 생성할 필요가 없다.
package object;
class Calc {
int plus(int x , int y ) {
return x + y;
}
int minus(int x , int y ) {
return x - y;
}
int times(int x , int y ) {
return x * y;
}
int divide(int x , int y ) {
return x / y;
}
}
public class Main04 {
public static void main(String[] args) {
/*
* Calc 클래스 생성
* - 4개의 메서드 정의
* - plus(int, int), return int
* - minus(int, int), return int
* - times(int, int), return int
* - divide(int, int), return int
* - 결과값 각각
* 출력
*
*/
Calc c = new Calc();
int p = c.plus(100, 50);
System.out.println("100+50=" + p);
System.out.println("100-50=" + c.minus(100, 50));
System.out.println("100*50=" + c.times(100, 50));
System.out.println("100/50=" + c.divide(100, 50));
}
}