AWS CLOUD FRAMEWORK/Java
[Day10] Ex02
JWJ_Hub
2023. 4. 5. 17:56
package oop;
class Student {
// 필드와 메서드는 반드시 클래스 바로 하위에만 작성해야 한다
// 멤버 필드
String name;
int age;
// 멤버 메서드
void show() {
int test = 5; // 이건 멤버 필드가 아니고, show함수의 지역변수이다
// 이클립스에서 멤버 필드는 파란색, 지역변수는 갈색으로 표현한다
// 지역변수는 함수 실행 중에만 유효하며, 함수가 종료되면 소멸한다
// 그러나, 멤버 필드는 함수 실행이 끝나도, 객체가 남아있다면 데이터가 유지된다
System.out.printf("이름은 %s이고, 나이는 %d살입니다\n", name, age);
}
// 클래스 내부에는 곧바로 실행 코드를 작성할 수 없다
// 실행되어야 할 코드는 메서드 내부에만 작성할 수 있다
// if(age > 20) {
// System.out.println("성인");
// }
}
public class Ex02 {
public static void main(String[] args) {
// 클래스의 구성요소
// 1. 객체는 속성정보를 저장할 수 있어야 한다 (멤버 필드)
// 2. 객체는 기능을 포함할 수 있어야 한다 (멤버 메서드)
// 3. 객체는 생성과 소멸단계를 포함한 생명주기가 있다 (생성자)
// 4. 객체는 외부의 다른 객체와 상호작용할 수 있어야 한다 (접근 제한자)
// 5. 객체의 소멸은 자바 가상 머신의 Garbage Collector 가 처리한다
// 클래스를 활용하지 않은 형태로 코드를 진행한다면
String name = "홍길동";
int age = 20;
System.out.printf("이름은 %s이고, 나이는 %d살입니다\n", name, age);
// 클래스를 활용하여 코드를 진행한다면
// 1) 만들어진 클래스로 객체를 생성
Student st1 = new Student();
// 2) 객체의 멤버 필드는 일반 변수처럼 사용하면 된다
st1.name = "이지은";
st1.age = 31;
// 3) 객체의 멤버 메서드는 객체를 통하여 바로 호출할 수 있다
st1.show(); // 메서드의 내용이 아무리 길어도 호출을 통하여 손쉽게 지시할 수 있다
Student st2 = new Student();
st2.name = "나단비"; // 멤버 필드는 객체마다 다른 속성을 저장할 수 있다
st2.age = 5;
st2.show(); // 같은 메서드를 호출해도 저장된 값이 다르니 결과가 달라진다
}
}