접근제한자, getter/setter this 등 문법
접근제한자 예
package com.day12;
public class AAA {
private int x = 10;
int y = 20;
protected int z = 30;
public int n = 40;
public void showInfo() {
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(n);
}
}
연습
package com.day12;
/*
멤버변수 => private
멤버변수의 값을 가져오거나 변경하기 위해서 public 메서드인
getter/setter 메서드 만들어 사용
*/
class Man{
private int age;
int height;
//getter
public int getAge() {
return age;
}
//setter 생성자와 비슷하지만 setter는 멤버변수 하나씩만 가능
public void setAge(int p_age) {
age = p_age;
}
}
public class ManTest {
public static void main(String[] args) {
Man m = new Man();
m.height = 180;
//m.age = 20; error
m.setAge(20); //setter 이용해서 값 넣기
System.out.println("키 : "+m.height);
System.out.println("나이 : "+m.getAge()); //getter 이용해서 값 가져오기
}
}
getter/setter 연습
this 적용해보기
package com.day12;
public class Triangle {
//1. 멤버변수
private int w, h;
//2. 생성자 - 멤버변수 초기화
public Triangle(int w, int h){
this.w = w;
this.h = h;
}
//3. getter/setter
public int getW() {
return w;
}
public void setW(int w) {
this.w = w;
}
public int getH() {
return h;
}
public void setH(int h) {
this.h = h;
}
//4. 메서드
public double findArea() {
double area = w*h/2.0;
return area;
}
}
시간 출력 (과제)
클래스
package com.day12;
public class Time1 {
int hour, min, sec;
Time1(int hour, int min, int sec){
this.hour = hour;
this.min = min;
this.sec = sec;
}
public void timeInfo() {
System.out.println(hour+"시 "+min+"분 "+sec+"초");
return;
}
public int onlySec() {
int os = hour*60*60+min*60+sec;
return os;
}
}
메인
package com.day12;
import java.util.Scanner;
public class Time1Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("시 분 초 입력");
int h = sc.nextInt();
int m = sc.nextInt();
int s = sc.nextInt();
Time1 t = new Time1(h, m, s);
t.timeInfo();
System.out.println("only Sec : "+t.onlySec());
}
}
프로그래머 출력
클래스
package com.day12;
public class Programmer {
//1.멤버변수
private String name, language, career;
//2.생성자
public Programmer(String p_name, String p_language, String p_career){
name = p_name;
language = p_language;
career = p_career;
}
//3.getter/setter
public String getName() {
return name;
}
public String getLanguage() {
return language;
}
public String getCareer() {
return career;
}
public void setName(String s_name) {
name = s_name;
}
public void setLanguage(String s_language) {
language = s_language;
}
public void setCareer(String s_career) {
career = s_career;
}
//4.메서드
public void work() {
System.out.println("프로그래밍을 합니다");
return;
}
}
메인
package com.day12;
import java.util.Scanner;
public class ProgrammerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름, 개발언어, 개발경력을 입력");
String name = sc.nextLine();
String lang = sc.nextLine();
String car = sc.nextLine();
System.out.println("===========================");
Programmer pro = new Programmer(name, lang, car);
System.out.println("이름 : "+pro.getName());
System.out.println("개발언어 : "+pro.getLanguage());
System.out.println("경력 : "+pro.getCareer());
pro.work();
System.out.println("\n다음");
//값변경
String name1 = sc.nextLine();
String lang1 = sc.nextLine();
String car1 = sc.nextLine();
pro.setName(name1);
pro.setLanguage(lang1);
pro.setCareer(car1);
System.out.println("이름 : "+pro.getName());
System.out.println("개발언어 : "+pro.getLanguage());
System.out.println("경력 : "+pro.getCareer());
pro.work();
}
}
간단한 예제
클래스
package com.day12;
public class Person {
private String name;
private int age;
private String tel;
Person(String name, int age, String tel){
this.name = name;
this.age = age;
this.tel = tel;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public void showInfo() {
System.out.println("이름 : "+name);
System.out.println("나이 : "+age);
System.out.println("전화번호 : "+tel);
}
}
메인
package com.day12;
import java.util.*;
public class PersonTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름 나이 전화번호를 입력");
String name = sc.nextLine();
int age = sc.nextInt();
String tel = sc.nextLine();
Person p = new Person(name, age, tel);
p.showInfo();
System.out.println("===========================");
//정보변경
System.out.println("다른 정보 입력");
String name1 = sc.nextLine();
int age1 = sc.nextInt();
String tel1 = sc.nextLine();
p.setName(name1);
p.setAge(age1);
p.setTel(tel1);
System.out.println("이름 : "+p.getName());
System.out.println("나이 : "+p.getAge());
System.out.println("전화번호 : "+p.getTel());
}
}
전화번호 심화,,?
package com.day12;
import java.util.Scanner;
class PhoneInfo{
private String name, phone, birth;
PhoneInfo(String name, String phone, String birth){
this.name = name;
this.phone = phone;
this.birth = birth;
}
PhoneInfo(String name, String phone){
this.name = name;
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public void info() {
if(this.birth == null) {
System.out.println("name : "+name+"\nphone : "+phone);
} else
System.out.println("name : "+name+"\nphone : "+phone+"\nbirth : "+birth);
}
}
public class PhoneInfoTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(;;) {
System.out.println("1.데이터 입력\n2.프로그램 종료");
int num = sc.nextInt();
if(num == 2) {
System.out.println("선택 2\n프로그램을 종료합니다.");
break;
}
if(num == 1){
System.out.println("선택 1");
System.out.println("이름 : ");
String name = sc.nextLine();
System.out.println("전화번호 : ");
String phone = sc.nextLine();
System.out.println("생년월일 : ");
String birth = sc.nextLine();
PhoneInfo info = new PhoneInfo(name,phone,birth);
info.info();
} else {
System.out.println("잘못입력");
continue;
}
}
}
}
가위바위보
package com.day12;
import java.util.Scanner;
class Game{
private String user, com, result;
Game(String user, String com, String result){
this.user = user;
this.com = com;
this.result = result;
}
Game(String user){
this.user = user;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getCom() {
return com;
}
public void setCom(String com) {
this.com = com;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String compare(int iuser, int icom) {
if((iuser-icom+3)%3==0) {
result = "비겼다.";
System.out.println(result);
} else if((iuser-icom+3)%3==1) {
result = "이겼다.";
System.out.println(result);
} else if((iuser-icom+3)%3==2) {
result = "졌다.";
System.out.println(result);
} else
System.out.println("잘못입력");
return result;
}
}
public class GameTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(;;) {
int iuser;
System.out.println("가위, 바위, 보, Q(Quit) 입력해주세요");
String str = sc.nextLine();
if(str.equalsIgnoreCase("q")){
System.out.println("종료합니다.");
break;
}
int icom = (int)(Math.random()*3);
String gg = "";
if(icom == 0) {
gg = "가위";
} else if(icom == 1) {
gg = "바위";
} else
gg = "보";
Game g = new Game(str);
if(str.equals("가위")) {
iuser = 0;
System.out.println("사용자 : "+str);
System.out.println("컴퓨터 : "+gg);
g.compare(iuser, icom);
} else if(str.equals("바위")) {
iuser = 1;
System.out.println("사용자 : "+str);
System.out.println("컴퓨터 : "+gg);
g.compare(iuser, icom);
} else if(str.equals("보")) {
iuser = 2;
System.out.println("사용자 : "+str);
System.out.println("컴퓨터 : "+gg);
g.compare(iuser, icom);
} else
System.out.println("손가락 문제");
}
}
}
어려워진다