어려울 거 같아서 미뤄뒀던 프로그래밍 공부 이번에 숨 딱 참고 Java 다이브 💦

class User{
	private String userName;
    private int userAge;
    
    public String getUserName(){
    	return userName;
    }
    
    public void setUserName( String userName ){
    	this.userName = userName;
    }
    
    public int getUserAge(){
    	return userAge;
    }    
    
    public void setUserAge( int userAge ){
    	this.userAge = userAge;
    }
}
- "get", "set" 접두사 뒤에 변수 이름을 첫 글자가 대문자의 형태로 명시
 - getter는 연결된 멤버변수의 데이터 타입을 리턴형으로 명시
 - setter는 연결된 멤버변수의 데이터 타입을 파라미터 형으로 명시
 
public 변수로 그냥 선언해도되는데 굳이 getter, setter은 사용하는 이유는 뭘까요? 그 이유는 비즈니스 로직(업무 로직)과 프로그래밍 로직의 차이가 있을 수 있기 때문이에요. 예를 들어, public int age 라는 변수가 선언이 되었다고 생각해보면 사람의 나이는 -1살이 될 수 없지만 int 라는 데이터타입의 프로그래밍상 -1은 충분히 입력될 수 있어요. getter, setter을 사용하여 의도치 않은 버그가 발생하여 잘못된 데이터의 입력이나 데이터가 손상되는 것을 방지할 수 있어요. 또는 getter을 아예 입력하지 않음으로써 다른 사용자의 접근을 아예 막을 수도 있어요.
	class HumanAge{
    	private int age;
        
        public int getAge(){
        	return age;
        }
        
        public void setAge(){
        	if(age >= 0){
              this.age = age;
            }else{
	  		this.age = 0;
	  		}	  
        }
    }
지켜야할 관례
- 클래스는 생성자를 가지고 있어야한다.
 - 클래스의 속성들은 get, set 메서드를 통해 접근할 수 있어야한다.
 
	class User{ //자바빈즈에 기본 모습
    
      private String userName;
      public String getUserName(){
          return userName;
      }
      public void setUserName( String userName ){
          this.userName = userName;
      }
    
    }
    

(1) 화면에서 마우스 오른쪽 버튼을 눌러요. - [Source] - [Generate Constructor using Fields]

(2) 포함할 변수를 체크해줘요 - [Access modifier]에서 접근 한정자를 선택해줘요 - [Generate]

(3) 파라미터가 있는 생정자가 만들어졌음을 확인할 수 있어요.

(1) 화면에서 마우스 오른쪽 버튼을 눌러요. - [Source] - [Generate Getters and Setters]

(2) 포함할 변수를 체크해줘요 - [Access modifier]에서 접근 한정자를 선택해줘요 - [Generate]

(3) getter와 setter가 만들어졌음을 확인할 수 있어요.
다음 다이브에서 또 만나요 🌊

출처
https://media.giphy.com/media/l2Je1bFuOpkNpyqYM/giphy.gif
https://media.giphy.com/media/Jbb3KS22397YQ/giphy.gif