1 팁
1.
2 복습
1.
스킵
3 이론
1. 객체
객체는 여러개 있을 수 있지만 클래스는 1개
2. 객체 2
클래스 : static이 붙음
인스턴스 : 객체 선언해야 쓸 수 있음
지역 변수 : 객체 선언 안해도 됨.
4 실습
1. 객체 선언하기
* C0516_03 (main)
package j0516;
/**
* C0516_03
*/
public class C0516_03 {
public static void main(String[] args) {
// 변수선언
int a = 0;
// 객체 선언
Tv t = new Tv();
t.color = "white";
System.out.println(t.color);
// 객체 선언
Tv t2 = new Tv();
t2.color = "red";
System.out.println(t2.color);
}
}
* C0516_04 (main)
package j0516;
/**
* C0516_03
*/
public class C0516_04 {
public static void main(String[] args) {
// //기존 선언 방식
// Scanner scan = new Scanner(System.in);
// String name = "";
// int kor = 0, eng = 0, math=0,total=0,rank = 0;
// double avg =0;
// name="홍길동";
// kor=100;
// eng=100;
// math=100;
// total = kor+eng+math;
// avg = total/3.0;
// 객체 선언 방식
Student1 s1 = new Student1();
s1.name = "홍길동";
s1.kor = 100;
s1.eng = 100;
s1.math = 100;
s1.sum();
s1.average();
System.out.println(s1.avg);
Student1 s2 = new Student1();
s2.name = "유관순";
s2.kor = 99;
s2.eng = 99;
s2.math = 90;
s2.sum();
s2.average();
}
}
* Tv (클래스)
package j0516;
public class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
* Student 1 (클래스)
package j0516;
public class Student1 {
String name;
int kor, eng, math, total, rank;
double avg;
void sum() {
total = kor + eng + math;
}
void average() {
avg = total / 3.0;
}
}
2. TV 기능 2
* C0516_05 (main)
package j0516;
import java.util.Scanner;
/**
* C0516_03
*/
public class C0516_05 {
public static void main(String[] args) { // 메인메소드
// 리모콘
// 1,2,3,4,5,6,7,8,9
// channelup, channeldown, 이전보기, 자막
// volumeup, volumedown,음소거
// 전원
Scanner scan = new Scanner(System.in);
int choice = 0;
int tempVolume = 0; // 임시볼륨 저장변수
// 객체 선언
Tv t = new Tv();
while (true) {
System.out.println("[리모트 프로그램]");
System.out.println("1. 전원 on/off");
System.out.println("2. 채널 Up");
System.out.println("3. 채널 Down");
System.out.println("4. 볼륨 Up");
System.out.println("5. 볼륨 Down");
System.out.println("6. 음소거");
System.out.println("0. 종료");
System.out.println("------------------------");
System.out.println("원하는 번호를 입력하세요.");
choice = scan.nextInt();
if (choice == 0) {
System.out.println("종료합니다");
break;
}
switch (choice) {
case 1:
t.power(); // 객체 사용법 : 참조변수명.메소드명
if (t.power == true) {
System.out.println("전원이 On입니다.");
} else
System.out.println("전원을 Off입니다.");
System.out.println();
break;
case 2:
if (t.power == false) {
System.out.println("전원을 on해야함");
break;
}
t.channelUp();
System.out.println("현재 채널 : " + t.channel);
System.out.println();
break;
case 3:
if (t.power == false) {
System.out.println("전원을 on해야함");
break;
}
t.channelDown();
System.out.println("현재 채널 : " + t.channel);
System.out.println();
break;
case 4:
if (t.power == false) {
System.out.println("전원을 켜야 합니다.");
break;
}
t.volumeUp();
System.out.println("현재 볼륨 : " + t.volume);
break;
case 5:
if (t.power == false) {
System.out.println("모루");
break;
}
t.volumeDown();
System.out.println("현재 볼륨 : " + t.volume);
break;
case 6:
if (t.power == false) {
System.out.println("전원을 On해야 기능이 구동됩니다.");
System.out.println();
break;
}
if (t.volume == 0) {
t.volume = tempVolume; // 임시볼륨높이를 입력
System.out.println("[음소거 해제합니다]");
System.out.println("현재 볼륨 : " + t.volume);
System.out.println();
} else {
tempVolume = t.volume; // 현재 볼륨높이를 저장
t.volume = 0;
System.out.println("[음소거 실행합니다]");
System.out.println("현재 볼륨 : " + t.volume);
System.out.println();
}
System.out.println();
break;
}// switch
} // while
} // main
}// class
* Tv (Class)
package j0516;
public class Tv {
String color;
boolean power;
int channel;
int volume;
// 지역변수는 기본값을 안 넣으면 에러 발생
void power() { // 지역메소드
power = !power;
}
void channelUp() {
if (channel >= 999) {
channel = 1;
return;
}
channel++;
}
void channelDown() {
if (channel <= 1) {
channel = 999;
return;
}
channel--;
}
void volumeUp() {
if (volume >= 50) {
volume = 1;
return; // 빠져 나옴
}
volume++;
}
void volumeDown() {
if (volume <= 1) {
volume = 50;
return;
}
volume--;
}
}
5 문제풀이
1. 로또 프로그램
* 핵심
- class는 new ~~로 선언해야 하는데 객체는 인스턴스는 선언 안해도 됨.
- 메서드는 객체 선언 안해도 됨. (일반적으로 메서드 많이 사용 안해서 객체 선언을 해야 함)
* 0516 실습 링크
728x90
반응형
LIST
'배운 책들 정리 > 자바 완전 정복' 카테고리의 다른 글
자바 완전 정복 6-2 - 객체지향개념 2 (0) | 2023.05.18 |
---|---|
자바 완전 정복 6 - 객체지향개념 (0) | 2023.05.18 |
자바의 정석 4,5 - 조건문,반복문,배열 2 (1) | 2023.05.13 |
자바의 정석 4,5 - 조건문,반복문,배열 (0) | 2023.05.11 |
자바의 정석 3,4 - 연산자, 조건문 (1) | 2023.05.10 |