본문 바로가기

국비지원 복습

12일차

접근제한자, 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("손가락 문제");
		}
		
	}

}

어려워진다

'국비지원 복습' 카테고리의 다른 글

14일차  (0) 2021.09.26
13일차  (0) 2021.09.26
10일차  (0) 2021.09.15
9일차  (0) 2021.09.14
8일차  (0) 2021.09.13