02 객체지향 프로그래밍
100%
객체 생성과 필드값 변경
실습 내용
객체 생성과 필드 값 변경
클래스 코드 예
클래스 다이어그램을 통해 코드를 완성하였다면, 이제 객체를 만들 수 있다.
/* Dog(개) 클래스 예 */
class Dog {
/* 필드 영역 */
String name; // 이름
double weight; // 무게
/* 메소드 영역 */
void bark() {
System.out.println("멍멍!");
}
}
객체 만들기
위 Dog 클래스의 객체(인스턴스)를 만드는 코드는 아래와 같다.
// Dog 객체를 생성
new Dog();
일반적으로는 만든 객체를 다시 사용키 위해, 다음과 같이 변수로 이름을 붙여준다.
// 객체 생성 후, dog1 변수에 연결
Dog dog1 = new Dog();
// 비교: 일반 변수
int score = 86;
즉 Dog 객체를 사용하기 위해 객체를 변수화 하기 위해 Dog객체를 dog1이라는 변수에 대입한다.
이렇게 하면 만들어진 객체에 dog1 이라는 이름으로 접근 할 수 있게 된다.
이는 마치, 점수 86점을 다시 사용하기 위해서 int 타입의 변수 score 에 저장하는 것과 마찬가지 원리이다.
닷 연산자?
생성된 객체는 연결된 변수에 닷(.) 연산을 함으로써, 접근할 수 있다.
그래서 객체의 필드를 바꿔주거나 가져오거나 할 수 있게 된다.
// dog1 변수에 연결된 객체에 접근, name 변경.
dog1.name = "멍무이";
// dog1 변수에 연결된 객체에 접근, weight 변경.
dog1.weight = 4.27;
// 필드 값 출력
System.out.printf("이름: %s\n", dog1.name);
System.out.printf("무게: %.2fkg\n", dog1.weight);
dog1이라는 변수를 통해 Dog 객체에 접근 한 다음에 해당 객체의 필드name에 "멍무이"라는 값을 넣어준다.
dog1이라는 변수를 통해 Dog 객체에 접근 한 다음에 해당 객체의 필드weight에 "4.27"이라는 값을 넣어준다.
따라서 이름과 무게를 출력할 때에도 dog1. name
dog1.weight와 같은 방식으로 객체의 필드를 출력할 수 있다.
문제
네로는 3살 된 페르시안 고양이다. 주어진 코드를 통해 이를 출력하려 한다. 하지만 현재 결과는 아래와 같다.
- 이름: null
- 품종: null
- 나이: 0
객체의 필드 값을 변경하여, 출력 예와 같은 결과를 얻으시오.
출력 예
- 이름: 네로
- 품종: 페르시안
- 나이: 3
풀이
더보기
/* CatTest 클래스 */
public class CatTest {
public static void main(String[] args) {
// Cat 객체 생성
Cat c = new Cat();
/* 1. 객체의 필드 값을 변경하시오. */
c.name = "네로";
c.breeds = "페르시안";
c.age = 3;
// Dog 객체 필드값 출력
System.out.printf("이름: %s\n", c.name);
System.out.printf("품종: %s\n", c.breeds);
System.out.printf("나이: %s\n", c.age);
}
}
/* Cat 클래스 */
class Cat {
String name; // 이름
String breeds; // 품종
int age; // 나이
void claw() {
System.out.println("할퀴기!!");
}
void meow() {
System.out.println("야옹~");
}
}
c라는 이름을 가지고 객체를 재사용해 필드 값을 넣어 주었다.
구름에듀-그림으로 배우는 자바
'Java' 카테고리의 다른 글
[Java] 인스턴스 메소드 호출 (0) | 2022.02.16 |
---|---|
[Java]또 다른 객체 만들기 (0) | 2022.02.15 |
[Java]클래스 구현하기 (0) | 2022.02.14 |
[Java]클래스와 객체 (0) | 2022.02.14 |
[Java]문자열 출력 (0) | 2022.02.14 |