ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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;
    	}
    }
    

     


     

Designed by Tistory.