-
210419_3~4(getter,setter)JAVA(Sol)(정리대기중..언젠가) 2021. 4. 19. 12:22
getter
게터: 역할입장에서 본다.
메서드이름이 get으로 시작하는 메서드를 getter라고 한다
역할: 호출한 곳으로 멤버 변수를 리턴하는 역할을 한다.
생성 규칙:
// 코드화한 개발자의 의도 : age는 정수값 0~ 200사이의 정수가 나이로 취급된다.
int age = 99; //멤버변수
public int getAge( ) {//get+첫대문자변수
return age //또는 this.age;
}
-------------------------------------------호출영역
int age ;
age = 객체.getAge( ); // 메서드를 통한 간접호출
객체.age = 10000; // 개발자의 의도와 벗어남. <== 의도적이냐,실수냐 그것은 나중문제다.
age = 객체.age; //직접호출
age = 객체.getAge( ); // 메서드를 통한 간접 호출
age = 10000;
getter심화연구 : 이것은 결국 은닉화와 관련된것
은닉==> 감춘다 ===> 보호한다 ==> 안정성
나중에 실무에서는 변수를 직접호출하는일이 거의 없다.
나중에 웹프로그램 할때는 무지하게 많이 나온다. 이클립스의 자동생성법을 이용한다.
package chapter8; public class MethodTest6 { int kuk = 0; int eng = 0; int tot = 0; float avg = 0.0f; public MethodTest6(int kuk, int eng) { //생성자 this.kuk = kuk; this.eng = eng; } public int getTot() { // getter의 용도 return tot; } public float getAvg() { // getter 생성법 return avg; } public void calcTot() { tot = kuk + eng; } public void calcAvg() { avg = tot/2.0f; } public void prn() { System.out.println("국어 :" + kuk); System.out.println("영어 :" + eng); System.out.println("총점 :" + tot); System.out.println("평균 :" + avg); } }
package chapter8; public class MethodTestMain6 { public static void main(String[] args) { MethodTest6 mt = new MethodTest6(90,90); mt.calcTot(); mt.calcAvg(); mt.prn(); int tot = mt.getTot(); float avg = mt.getAvg(); System.out.println("총점 :" + tot); System.out.println("평균 :" + avg); } }
setter
메서드의 이름이 set으로 시작함
역할 : 인자를 받아서 멤버변수를 초기화 하는 역할을 한다.
생성 규칙:
// 코드화한 개발자의 의도 : age는 정수값 0~ 200사이의 정수가 나이로 취급된다.
int age = 99; //멤버변수
public void setAge(int age ) { //set+첫대문자변수 반환형은 항상 void이다
return age = age;
}
----------------------------setter getter의 의미
멤버변수를 호출하거나 초기화 할때 집적호출하지 않고
메소드를 통해서 호출하여 변수값을 보호한다. 은닉화의 기본이다.
private(접근자) 변수; //폐쇠변수
public(접근자) setter( ) 또는 public getter() //공개메소드
package chapter8; public class MethodTest7 { int kuk=0; int eng=0; int tot=0; float avg=0.0f; public MethodTest7(int kuk,int eng) { this.kuk=kuk; this.eng=eng; } public int getTot() { return tot; } public float getAvg() { return avg; } public void setKuk(int kuk) { // setter this.kuk=kuk; } public void setEng(int eng) { this.eng=eng; } public void calcTot() { tot=kuk+eng; } public void calcAvg() { avg=tot/2.0f; } public void prn() { System.out.println("국어 :" +kuk); System.out.println("영어 :" +eng); System.out.println("총점 :" +tot); System.out.println("평균 :" +avg); } }
package chapter8; public class MethodTestMain7 { public static void main(String[] args) { MethodTest7 mt = new MethodTest7(90,90); //생성자를가지고 한번썻다 mt.calcTot(); mt.calcAvg(); mt.prn(); mt.setKuk(70); // setter를 이용해서 초기화한다 mt.setEng(80); mt.calcTot(); mt.calcAvg(); System.out.println("총점 :" + mt.getTot()); System.out.println("평균 :" + mt.getAvg()); //17,18번 없애고 mt.prn(); // 쓰면 좋은듯 } }
package chapter8; public class Calc { public void add(int kuk, int eng) { System.out.println("합계" + (kuk + eng)); } public int sub(int kuk, int eng) { return kuk - eng; } public int mul(int kuk, int eng) { return kuk * eng; } public static void main(String[] args) { Calc c = new Calc(); int a = 100; int b = 200; c.add(500, 300); // call by value System.out.println("뺀값"+c.sub(a, b)); // call by value System.out.println("곱한값"+c.mul(a, b)); // call by value } } //합계800 //뺀값-100 //곱한값20000
setter getter 자동생성법
source - generate setter getter
변수를 변경할때는 손으로 고치지말고
지운다음 다시 setter/getter생성할것
package testjava; // bean클래스라고 한다 public class SetterGetterTest { //세터,게터 만들기 연습 // 규칙1. 변수는 private로 선언한다 private String name; private int age; private String phone; private String address; private boolean marrige; private int []math; // source - generate setter getter - select all //세터와 게터는 자동으로 만들자 ~ // 변수가 바뀌면 손으로 고치지 말고, 다시 생성하라 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 getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public boolean isMarrige() { return marrige; } public void setMarrige(boolean marrige) { this.marrige = marrige; } public int[] getMath() { return math; } public void setMath(int[] math) { this.math = math; } }
'JAVA(Sol)(정리대기중..언젠가)' 카테고리의 다른 글
210419_7~8 (생성자오버로딩) (0) 2021.04.19 210419_5~6(chapter9.메모리운영,객체구별,기본생성자) (0) 2021.04.19 210419_1~2call_by_value,생성자 (0) 2021.04.19 210416_7(method만들기) (0) 2021.04.16 210416_6(클래스class) (0) 2021.04.16