💡 학습 목표
|
앞서, 객체(Object)란 상태와 행위를 가지고 있고 프로그래밍 세상에 맞게 모델링을 하기 위해서는 추상화 과정을 진행해야 된다 라는 것을 배웠습니다.
1. 클래스에 대해서 알아 봅시다. (설계도면)
자바에서 클래스(Class)는 객체를 생성하기 위한 템플릿 또는 설계도 역할을 합니다. 클래스는 객체의 상태를 나타내는 필드(변수)와 객체의 행동을 정의하는 메서드(함수)로 구성됩니다. 간단히 말해, 클래스는 데이터와 그 데이터를 조작하는 코드를 묶어 놓은 컨테이너와 같습니다.
package basic.ch05;
// 클래스란 객체를 만들기 전 설계도면 입니다.
public class Student {
String name; // 학생 이름(문자열)
int grade; // 학년(정수)
String major; // 학과
double height;
double weight;
} // end of class
package basic.ch05;
public class Book {
String title;
String author;
int publishYear;
int totalPage;
}
클래스를 만드는 규칙
- 클래스는 대문자로 시작하는것이 좋음(권장사항)
- 파스칼 케이스(PascalCase)와 카멜 케이스(camelCase) 명명 규칙 사용하기
2. 클래스를 인스턴스화 시켜 봅시다(객체로 만들기)
package basic.ch05;
public class StudentProgram2 {
public static void main(String[] args) {
int n1 = 1;
double d1 = 5.0;
// 참조 타입(주소값 들어간다)
Student student1 = new Student();
Student student2 = new Student();
// . 연산자를 통해서 접근 할 수 있다.
student1.name = "홍길동";
// 콘솔창에 student1(변수에 연결되어 있는 객체의 이름을 화면에 출력)
System.out.println(student1.name);
student2.name = "이순신";
System.out.println(student2.name);
System.out.println(student1);
System.out.println(student2);
} //end of main
} //end of class
package basic.ch05;
public class BookProgram {
public static void main(String[] args) {
// Book 클래스를 인스턴스화 시켜주세요 2개
// 참조 타입 변수명은 bookBox1, bookBox2
Book bookBox1 = new Book(); // 객체 생성
Book bookBox2 = new Book(); // 객체 생성
// 참조 타입에 변수안에는 실제 값이 들어가는 것이 아니라
// 주소값이 담긴다. 레퍼런스 변수(Reference variable)
System.out.println(bookBox1);
System.out.println(bookBox2);
// Heap 메모리에 생성된 객체에 접근해서
// 그 해당 객체의 속성값을 넣어보자.
bookBox1.title = "플러터UI실전";
bookBox1.author = "김근호";
bookBox1.publishYear = 2022;
bookBox1.totalPage = 230;
System.out.println("--------------------");
// 콘솔차에다가 해당 객체의 속성값(상태값)을 출력해보자.
System.out.println(bookBox1.title);
System.out.println(bookBox1.author);
System.out.println(bookBox1.publishYear);
System.out.println(bookBox1.totalPage);
// 연습문제
// bookBox2 클래스 인스턴스에 접근해서 속성값을 대입하고
// 콘솔창 화면에 출력하시오
bookBox2.title = "노인과 바다";
bookBox2.author = "어니스트 해밍웨이";
bookBox2.publishYear = 1952;
bookBox2.totalPage = 193;
System.out.println("---------------------");
System.out.println(bookBox2.title);
System.out.println(bookBox2.author);
System.out.println(bookBox2.publishYear);
System.out.println(bookBox2.totalPage);
} // end of main
} // end of class
연습 문제
클래스를 설계하고 메모리에 올려 보자(클래스 설계, 객체 생성)
주문 클래스를 설계하고 메모리에 올려봅시다.
package basic.ch05;
public class Order {
String name;
String addr;
String food;
String alcohol;
String ordermessage;
int age;
int price;
int ordernum;
}
회원 클래스 설계하고 메모리에 올려 봅시다.
package basic.ch05;
public class OrderUser {
public static void main(String[] args) {
Order user1 = new Order();
Order user2 = new Order();
Order user3 = new Order();
user1.name = "맥도날드 케찹 콜렉터";
user1.addr = "기장";
user1.food = "햄버거";
user1.alcohol = "맥주";
user1.age = 32;
user1.price = 19500;
user1.ordernum = 1;
user1.ordermessage = "케찹 30개";
user2.name = "공항도둑";
user2.addr = "동래구";
user2.food = "족발";
user2.alcohol = "소주";
user2.age = 28;
user2.price = 39500;
user2.ordernum = 2;
user2.ordermessage = "왜 내 주문만 그러는데";
user3.name = "자르반82세";
user3.addr = "사하구";
user3.food = "파전";
user3.alcohol = "막걸리";
user3.age = 82;
user3.price = 25000;
user3.ordernum = 3;
user3.ordermessage = "....";
System.out.println(user1.name);
System.out.println(user1.addr);
System.out.println(user1.age);
System.out.println(user1.food);
System.out.println(user1.alcohol);
System.out.println(user1.price);
System.out.println(user1.ordernum);
System.out.println(user1.ordermessage);
System.out.println("====================");
System.out.println(user2.name);
System.out.println(user2.addr);
System.out.println(user2.age);
System.out.println(user2.food);
System.out.println(user2.alcohol);
System.out.println(user2.price);
System.out.println(user2.ordernum);
System.out.println(user2.ordermessage);
System.out.println("====================");
System.out.println(user3.name);
System.out.println(user3.addr);
System.out.println(user3.age);
System.out.println(user3.food);
System.out.println(user3.alcohol);
System.out.println(user3.price);
System.out.println(user3.ordernum);
System.out.println(user3.ordermessage);
System.out.println("====================");
}
}
결과
맥도날드 케찹 콜렉터
기장
32
햄버거
맥주
19500
1
케찹 30개
====================
공항도둑
동래구
28
족발
소주
39500
2
왜 내 주문만 그러는데
====================
자르반82세
사하구
82
파전
막걸리
25000
3
....
====================
'Java > JAVA 2 - 객체지향 핵심' 카테고리의 다른 글
JAVA 2 - 메소드(method)와 변수 (0) | 2024.04.15 |
---|---|
JAVA 2 - 함수와 만들기 {연습문제} (0) | 2024.04.15 |
JAVA 2 - 함수와 메서드 (0) | 2024.04.15 |
JAVA 2 - 객체에 값 할당하기 (0) | 2024.04.15 |
JAVA 2 - OOP(객체지향) 란? (0) | 2024.04.15 |