02 객체지향 프로그래밍
100%
클래스 구현하기
실습 내용
클래스 구현하기(코드 작성)
클래스 설계?
클래스를 만들기 위해서는 먼저, 클래스 다이어그램을 작성해야 합니다. 아래는 고양이 클래스의 설계 예다.

클래스 구현?
이를 코드로 구현(작성)하면 아래와 같습니다. 특별히 주의할 점으로는, 메소드 앞 public static 키워드가 없다는 점이다.
- class Cat {
- /* 필드(상태) 영역 */
- String name; // 이름
- String breeds; // 품종
- double weight; // 무게
- /* 메소드(동작) 영역 */
- void claw() {
- System.out.println("할퀴기!!");
- }
- void meow() {
- System.out.println("야옹!!");
- }
- }
문제
주어진 코드는 두 개의 클래스, Main과 Dog로 이루어져있다. 아래의 클래스 다이어그램을 참조하여 Dog 클래스를 완성하고, 출력 예와 같은 결과를 얻으시오. (Main 클래스의 코드 그대로 사용 할 것)

실행결과
- 이름: null
- 품종: null
- 나이: 0
/* Main 클래스 */
public class Main {
public static void main(String[] args) {
// Dog 객체 생성
Dog d = new Dog();
// Dog 객체 필드 값 출력
System.out.printf("이름: %s\n", d.name);
System.out.printf("품종: %s\n", d.breeds);
System.out.printf("나이: %s\n", d.age);
}
}
/* Dog 클래스 */
class Dog {
/* 1. 필드 영역을 작성하시오. */
/* 2. 메소드 영역을 추가하시오. */
}
풀이
코드
더보기
더보기
/* Main 클래스 */
public class Main {
public static void main(String[] args) {
// Dog 객체 생성
Dog d = new Dog();
// Dog 객체 필드 값 출력
System.out.printf("이름: %s\n", d.name);
System.out.printf("품종: %s\n", d.breeds);
System.out.printf("나이: %s\n", d.age);
}
}
/* Dog 클래스 */
class Dog {
/* 1. 필드 영역을 작성하시오. */
String name;
String breeds;
int age;
/* 2. 메소드 영역을 추가하시오. */
void wag() {
System.out.println("꼬리치기");}
void bark() {
System.out.println("짖기");}
}
결과
코드분석
우선 이렇게 클래스 부분이 있으면 객체(인스턴스)를 만들 수 있다.
따라서 메인 메소드 안쪽을 보면 객체를 생성하는 부분이 있다.
new Dog(); 부분이 객체를 생성하는 부분
Dog d = 부분은 만들어진 Dog라는 객체에 d라는 이름을 입힌다는 뜻
필드값 출력 부분은 만들어진 이름과 품종 나이를 출력하는 부분
d. 객체의 이름. 은 해당 객체에 접근이 되는 리모콘과 같은 역할
String의 기본값은 null
int의 기본값은 0
값을 아무것도 정해주지 않았기 때문에 기본값 출력
구름에듀-그림으로 배우는 자바 체험판
'Java' 카테고리의 다른 글
[Java]또 다른 객체 만들기 (0) | 2022.02.15 |
---|---|
[Java]객체 생성과 필드 값 변경 (0) | 2022.02.14 |
[Java]클래스와 객체 (0) | 2022.02.14 |
[Java]문자열 출력 (0) | 2022.02.14 |
[Java] 프로그래밍이란 (0) | 2022.02.14 |