G_0902_020

charl hi·2021년 9월 2일
0

국비

목록 보기
20/122
post-thumbnail

참조형 매개변수

CirecleTest

  • 내가 만든 것

package kr.or.kh08;

class Point{
	int x, y;
	
	Point(int x, int y){
		this.x = x;
		this.y = y;
	}
}

class Circle{
	double r;
	Point pp;	//***
	
	Circle(Point p, double r){
		pp = p;	//***
		this.r = r; 
	}
	void circleInfo() {
		System.out.printf("원점 : (%d, %d), 반지름 : %f", pp.x, pp.y, r);
	}
}


public class CircleTest {

	public static void main(String[] args) {
		Circle c = new Circle(new Point(3, 5), 10.0);
		c.circleInfo();

	}

}

원점 : (3, 5), 반지름 : 10.000000



여기서 생성자 삭제한거랑


이렇게 바꾸면 >>




StudentTest

package kr.or.kh09;

class Subject{
	String subjectName;	//과목이름
	int score;			//과목점수
	int subjectID;		//과목코드
	
	Subject(){
		
	}
}

class Student{
	int studentID;		//학번
	String studentName;	//학생이름
	//***
	Subject korea = new Subject();		//국어
	Subject math = new Subject();		//수학
	
	Student(int id, String name){
		this.studentID = id;
		this.studentName = name;
		
//		this.korea = 
	}
	void setKorea(String subject, int score) {
		korea.subjectName = subject;
		korea.score = score;
		System.out.println(studentName+"학생의 국어점수는 "+korea.score+"점입니다.");
	}
	
	void setMath(String subject, int score) {
		math.subjectName = subject;
		math.score = score;
		System.out.println(studentName+"학생의 수학점수는 "+math.score+"점입니다.");
	}
	
	void getTotalScore() {
		int sum = korea.score+math.score;
		System.out.println(studentName+"학생의 총점은 "+sum+"점입니다.");
	}
}


public class StudentTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student sLee = new Student(100, "Lee");
		sLee.setKorea("국어", 100);
		sLee.setMath("수학", 95);
		sLee.getTotalScore();

	}

}

Lee학생의 국어점수는 100점입니다.
Lee학생의 수학점수는 95점입니다.
Lee학생의 총점은 195점입니다.


get() set()

  • 자동으로 만들어줌

  • 오른쪽마우스 > Source > Generate Getters and Setters

  • private 으로 선언된 멤버 변수 (필드)에 대해 접근

  • 수정할 수 있는 메서드를 public으로 제공

  • get() 메서드만 제공 되는 경우 read-only 필드

package kr.or.kh10;

public class Birthday {
	private int year;	//외부에서 접근 못하게
	private int month;
	private int day;
	
	private boolean isValid;
	public int getYear() {
		return year;
	}
	public void setYear(int year) {	//대신 이걸로 간접접근 가능
		this.year = year;
	}
	public int getMonth() {
		return month;
	}
	public void setMonth(int month) {
		if(month<1 || month>12) {
			isValid = false;
		} else {
			this.month = month;
		}
	}
	public int getDay() {
		return day;
	}
	public void setDay(int day) {
		if(day<1 || month>31) {
			isValid = false;
		} else {
			this.day = day;
		}
	}
	void setIsValid() {
		isValid = true;
	}
	void showDate() {
		if(isValid) {
			System.out.println(year+"년 "+month+"월 "+day+"일입니다.");
		} else {
			System.out.println("유효하지 않은 날짜입니다.");
		}
	}
	

}

2019년 9월 2일입니다.

0개의 댓글