C. Java
java 자바 클래스속성 접근지정자
sfeg
2017. 7. 2. 21:33
접근지정자
클래스
- 클래스는 동일한 모양의 객체를 여러개 만들어 내기 위해 만든 모형이다.
즉 어떠한 데이타와 어떠한 메소드를 사용하는 객체를 만들겠다는 정의이다.
(Object[객체] = > Data + 메소드)
- 자료형(프로그램적인 측면에서)
- 특징은 은닉화(캡슐화), 다형성, 상속성, 추상화 이다.
클래스 선언 형식 :
-----------------------------------------------------------------
클래스 선언부
-----------------------------------------------------------------
클래스 선언부
{
속성 선언
생성자 정의 [초기화작업] //만약 선언을 하지 않아도 기본으로 디폴트 생성자가 생긴다.
메서드 정의
}
-----------------------------------------------------------------
class 클래스이름
{
접근지정자 자료형 변수이름;
접근지정자 생성자() { }
접근지정자 자료형 메서드이름() { }
}
----------------------------------------------------------------
접근지정자와 은닉화
: 만약 누구나 멤버변수에 다 접근해서 값을 변경할수 있게 된다면 신뢰성이 떨어지게된다. 그래서
접근 지정자를 이용하여 멤버변수인 데이터는 은닉시키고 메서드로 객체에 접근하도록 하는것.
: 만약 누구나 멤버변수에 다 접근해서 값을 변경할수 있게 된다면 신뢰성이 떨어지게된다. 그래서
접근 지정자를 이용하여 멤버변수인 데이터는 은닉시키고 메서드로 객체에 접근하도록 하는것.
ex)------------------------------------------- class부
class Animal
{
string name;
private int age;
}
-------------------------------------------- 메인calss부
public class AnimalMain
{
public static void main(String[] args)
{
Animal a; // 이부분은
a = new Animal(); // 객체생성부분
a.name = "개";
a.age = 26; ----------------------------> error남 paivate 멤버이므로 접근 불가능
}
}
========================================================================================
속성의 접근 지정자를 private로 지정하게 되면 반드시 메서드를 통해서만 접근 가능한 멤버
가 되므로 그 속성에 대한값을 설정하는 메서드(setXXX) 와 알려주는 메서드(getXXX)를
추가해야한다.
가 되므로 그 속성에 대한값을 설정하는 메서드(setXXX) 와 알려주는 메서드(getXXX)를
추가해야한다.
========================================================================================
ex)------------------------------------------- class부
class Animal
{
string name;
private int age;
public void setAge(int new_age){ age = new_age; }
public int getAge { return age; }
}
-------------------------------------------- 메인calss부
public class AnimalMain
{
public static void main(String[] args)
{
Animal a; // 이부분은
a = new Animal(); // 객체생성부분
a.name = "개";
//a.age = 26; ----------------------------> error남 paivate 멤버이므로 접근 불가능
a.setAge(26);
system.out.println( a.getAge() );
}
}