728x90
접근제어자
멤버 변수만 다른 파일에서 사용 가능하도록 하는 접근 제어자가 있다.
접근 제어자의 위치는 데이터 타입의 왼쪽에 입력한다.
총 4개가 있다.
1. 아무것도 안 적는 것 => default : 같은 패키지 내에서만 접근 가능
2. private : 다른 곳에서 접근 불가
3. public : 아무데서나 접근 가능
4. protected : 상속관계에서 사용 가능.
this 키워드
this 키워드는 클래스의 멤버 변수나 메소드를 가리킬 때 사용한다.
멤버 변수와 로컬 변수의 이름이 같으면 컴퓨터도 헷갈리고 사람도 헷갈린다.
따라서 this라는 키워드를 이용해서 구분해주는 용도로 사용한다.
getter setter
멤버 변수가 private으로 되어있으면 멤버 변수에 데이터를 저장하는 함수와 가져오는 함수가 있어야한다.
이를 getter / setter라고 부른다.
이클립스 툴에서 사용하는 방법
코드 작성하는 곳에 마우스 우클릭 후 Source -> Generate Getters and Setters
어떤 멤버 변수를 처리할 것이냐 , 코드 작성은 어디 뒤에 할 것이냐, 접근제어자는 무엇으로 할것이냐를 체크 후
Generate 클릭하면 아래와같이 만들어준다.
코드 (설명은 주석처리)
package data;
public class Member {
// 멤버 변수만!!!!!! 다른 파일에서 사용가능토록 하는
// 접근 제어자가 있다. 접근제어자의 위치는 데이터타입 왼쪽
// 총 4개가 잇다.
// 1. 아무것도 안 적는 것 => default : 같은 패키지 내에서만 접근 가능
// 2. private : 다른 곳에서 접근 불가
// 3. public : 아무데서나 접근 가능
// 4. protected
private String name;
private String tel;
private String address;
public Member(){
}
public Member(String name,String tel,String address){
this.name = name;
this.tel = tel;
this.address = address;
System.out.println(this.name);
}
// 접근제어자는 클래스의 메소드에도 사용한다.
// this 키워드.
// this는 클래스의 멤버변수나 메소드를 가리킬 때 사용한다.
// 멤버변수와 로컬변수의 이름이 같으면 컴퓨터도 헷갈리고 사람도 헷갈린다
// 따라서 this라는 키워드를 이용해서 구분해주는 용도로 사용한다.
public void setData(String name,String tel,String address){
this.name = name;
this.tel = tel;
this.address = address;
}
public void print() {
System.out.println(name);
System.out.println(tel);
System.out.println(address);
}
// 멤버 변수가 private으로 되어있으면
// 멤버 변수에 데이터를 저장하는 함수, 가져오는 함수가 있어야한다.
// getter / setter라고 부른다.
public void setName(String name) {
this.name = name;
}
public String getName(){
return name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
// 패키지는 폴더를 의미한다.
package main;
// 다른 패키지의 클래스를 사용하려면 import 해야한다.
import data.Member;
public class AccessMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Member m1 = new Member();
// 아래코드는 Member 클래스의 멤버변수가
// public일 때만 동작한다.
// m1.name = "홍길동";
// m1.tel = "010-1111-2222";
// m1.address = "인천시 서구 가좌동";
// 데이터를 저장하기 위해서는? 멤버 클래스에 함수가 제공되어야함.
m1.setData("홍길동","010-1111-2222","인천시 서구 가좌동");
// 생성자로 바로 데이터를 셋팅할 수 있도록 코드를 수정
// 두번째 데이터
// 김나나,0104433-2211,서울시 마포구 공덕동
Member m2 = new Member("김나나","010-4433-2211","서울시 마포구 공덕동");
m1.print();
m2.print();
// "홍길동"의 전화번호가 변경되었다.
// 010-9999-3333
m1.setTel("010-9999-3333");
// "김나나"의 주소도 변경되었다.
// 인천시 서구 청라
m2.setAddress("인천시 서구 청라");
// "홍길동"의 이름을 "친한친구 길동이"로 저장하고싶다.
m1.setName("친한친구 길동이");
System.out.println( m1.getName() );
// 김나나의 전화번호만 가져오고싶다.
System.out.println( m2.getTel() );
// 홍길동의 주소만 가져오고싶다.
System.out.println(m1.getAddress());
}
}
'Java' 카테고리의 다른 글
Java - 추상클래스 (abstract)와 인터페이스(interface) (0) | 2023.01.20 |
---|---|
Java - 상속 (Inheritance) / 메소드 오버라이딩 (Method Overriding) / super (0) | 2023.01.19 |
Java - 생성자(Constructor) , 생성자 오버로딩 (0) | 2023.01.19 |
Java - 메소드 오버로딩 (Method Overloading) (0) | 2023.01.18 |
Java - Static (전역변수)와 메모리의 data영역 (0) | 2023.01.18 |