반응형
객체와 클래스
- 8강 메서드까지 모든 언어들이 가지고 있는 공통적인 규칙들을 살펴보았다.
- 9강 객체와 클래스 부터는 java와 비슷한 언어들(객체지향언어)만 가지고 있는 개념이다.
- 이해와 암기만 한다면 따라올 수 있는 개념
⭐ 객체=> 만들어진 결과물
⭐ 클래스=> 객체를 만들기 위한 틀. 클래스 안의 변수 = 객체의 속성
볼펜을 만든다고 했을 때 대량 생산하기 위해 틀을 만드는 것이 class.
new 연산자를 사용해 실제 컴퓨터 안에 생성되면 instance가 생성되었다고 하며
최종적으로 만들어 진 것이 객체 object이다.

➰ 기존 절차지향코드 - 계산기(add)
public class ObjectBasic01 {
public static void main(String[] args) {
//기존에 사용하던 계산기 - 절차지향코드
System.out.println("====1번 계산기====");
System.out.println(add(5));
System.out.println(add(10));
System.out.println(add(100));
System.out.println("====2번 계산기====");
System.out.println(add2(100));
System.out.println(add2(200));
}
//result에 매개값을 저장하는 1번 계산기
static int result;
static int add(int n) {
result += n;
return result;
}
static int result2;
static int add2(int n) {
result2 += n;
return result2;
}
}
➰ 위의 코드를 객체지향으로 만들어보기(클래스와 객체 사용)
public class Calculator {
//요것이 클래스 바로 '틀' 이다.
int result;
int add(int n) {
result += n;
return result;
}
void print() {
System.out.println(result);
}
}
public class ObjectBasic02 {
public static void main(String[] args) {
//객체지향코드(oop) - calculator class 사용
System.out.println("====1번 계산기====");
Calculator cal = new Calculator();
System.out.println(cal.add(1));
System.out.println(cal.add(2));
System.out.println(cal.add(3));
System.out.println("====2번 계산기====");
Calculator cal2 = new Calculator();
System.out.println(cal2.add(100));
System.out.println(cal2.add(200));
System.out.println(cal2.add(300));
}
}
💡 class안에 들어갈 수 있는것들.
- 멤버변수 : class 바로 밑에서 생성하므로, class 안의 method들에서는 자유롭게 사용가능.
- method
➰ pen 클래스와 객체 사용
//대량 생산을 목적으로 하는 클래스는 main이 없습니다.
public class Pen {
//클래스에서 속성을 나타내는 것을 멤버변수(field)라고 한다.
//멤버변수에서는 값을 바꿔줄 수 없다. 선언&초기화만 가능.
//값의 변경은 method안에서 가능.
String color;
int price;
String company;
//클래스에서 기능을 나타내는 것을 메서드로 부른다.
void write() {
System.out.println(color + " 글씨를 씁니다.");
}
void info() {
System.out.println("===펜의 정보===");
System.out.println("색상:" + color);
System.out.println("가격:" + price);
System.out.println("제조사:" + company);
}
}
package day11;
public class PenMain {
public static void main(String[] args) {
//펜의 기능을 사용할 때는 객체로 생성하고, 참조연산자 . 을 사용한다.
Pen green = new Pen();
green.color = "초록";
green.price = 2000;
green.company = "모나미";
green.write();
green.info();
Pen blue = new Pen();
blue.color = "파랑";
blue.price = 2500;
blue.company = "uni ball";
blue.write();
blue.info();
/* calculator도 class로 만들어놨기 때문에 어디에서든 사용가능하다 */
Calculator cal = new Calculator();
cal.add(green.price);
cal.print();
//System.out.println(cal.add(100));
cal.add(blue.price);
cal.print();
}
}
멤버변수 vs 지역변수
- 멤버변수는 기본값이 자동으로 지정된다. (초기화안하고 사용가능, 자동초기화 되므로..)
- 지역변수는 사용하기 전 반드시 초기화해야한다.
➰ Quiz - 아래 조건을 클래스를 활용하여 만들어보기.

public class Person {
String name;
int age;
String job;
String info() {
String str ="";
str += "이름: " + name + "\n";
str += "나이: " + age + "\n";
str += "직업: " + job + "\n";
return str;
}
}
public class MainClass {
/*
* Person 클래스를 파일로 정의
*
* 멤버변수는 int age, String name, String job
* method info() : return String type - 멤버변수를 문자열로 더해서 반환
*
* 메인에서는 person객체를 2개 생성해서 각각 확인.
*/
public static void main(String[] args) {
Person person = new Person();
person.name = "진화영";
person.age = 25;
person.job = "사육사";
System.out.println(person.info());
Person person2 = new Person();
person2.name = "위하준";
person2.age = 38;
person2.job = "엔지니어";
System.out.println(person2.info());
}
}반응형
'국비지원 > JAVA' 카테고리의 다른 글
| [JAVA] 12-1. Garbage Collecting와 Package / 기본타입과 참조타입 (0) | 2022.10.06 |
|---|---|
| [JAVA] 11-3. 생성자(Constructor) (0) | 2022.10.05 |
| [JAVA] 11-1. method 이어서 (배열과 method) (0) | 2022.10.05 |
| [JAVA] 10. method (0) | 2022.10.04 |
| [JAVA] 9-2. 문자열 다루기 (0) | 2022.09.30 |