-객체의 설계도 역할을 하는 프로그램 소스
class 클래스이름{
멤버변수;
void 메서드이름(){
...
}
}
객체의 선언
클래스이름 객체이름;
객체의 할당
객체이름 = new 클래스이름();
선언과 할당의 통합
클래스이름 객체이름 = new 클래스이름();
package Class;
class Character{
// 일반적으로 멤버변수는 선언만 한다.
String name;
int age;
}
public class Main02 {
public static void main(String[] args) {
Character d = new Character(); // d의 객체 생성
d.name = "둘리";
d.age = 19;
Character h = new Character(); // h의 객체 생성
h.name = "희동";
h.age = 3;
System.out.println("이름 : " + d.name + ", 나이 : " + d.age);
System.out.println("이름 : " + h.name + ", 나이 : " + h.age);
}
}
package Class;
// 학생 정보를 포함하는 클래스
class Student { // Student 라는 설계도를 만든것.
// 멤버변수
String name = "자바학생";
int age = 20;
String number = "0101234568";
}
public class Main01 {
public static void main(String[] args) { // 위의 클래스 student 설계도로 std, std2 라는 객체1,2(tool)를 만든것
// 객체의 선언과 할당 분리
Student std;
std = new Student();
// 객체의 생성과 할당 일괄지정
Student std2 = new Student();
System.out.println("std 이름 : " + std.name);
System.out.println("std 나이 : " + std.age);
System.out.println("std 전화번호 : " + std.number);
System.out.println("std2 이름 : " + std2.name);
System.out.println("std2 나이 : " + std2.age);
System.out.println("std2 전화번호 : " + std2.number);
System.out.println("---------------------------------");
std.name = "홍길동";
std.age = 30;
System.out.println("std 이름 : " + std.name);
System.out.println("std 나이 : " + std.age);
System.out.println("std2 이름 : " + std2.name);
System.out.println("std2 나이 : " + std2.age);
System.out.println("-----------------------------------------");
std2.name = "이순신";
std2.age = 25;
System.out.println("std 이름 : " + std.name);
System.out.println("std 나이 : " + std.age);
System.out.println("std2 이름 : " + std2.name);
System.out.println("std2 나이 : " + std2.age);
}
}
메서드란 프로그램에서 하나의 동작 단위를 의미한다.
두 개 이상의 메서드가 서로 동일한 대상을 위해서
클래스에 멤버변수와 메서드가 공존할 경우, 멤버변수는 모든 메서드가 공유하는 전역 변수로 존재하게 된다.
변수의 종류
-> 멤버변수 (=전역변수)
: 클래스 안에서 선언된 변수로써, 클래스 블록 범위 안에서 유효하다.
-> 지역변수
: 메서드 안에서 선언된 변수로써, 메서드의 블록을 빠져나가지 못한다.
그러므로 다른 메서드는 해당 변수를 인식하지 못한다.
이규칙은 조건문, 반복문 같은 블록 {}을 형성하는 모든 경우에 해당한다.
null : 아무것도 아닌 값
package Class; class Member { String name; // 파랑멤버변수 int age; void setName(String name) { // 갈색지역변수 this.name = name; } void setAge(int age) { this.age = age; } String getName() { return this.name; // this 를 사용하여 멤버변수를 가져온다. } int getAge() { return this.age; } void say() { System.out.println(this.getName()); System.out.println(this.getAge()); } } public class Main06 { public static void main(String[] args) { Member member = new Member(); member.setName("자바학생"); member.setAge(20); member.say(); } }