마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

[기본개념질문] public 이란 함수와 같은겁니꺄?

0 추천
public
public boid
public boolean
public synchronized

이런건 웹개발시 사용하는 function 같은거랑 비슷하다고 보면 되는겁니까?

그래서 같은 소스 페이지 혹은 어플리케이션 안에 있는 다른 소스 페이지에서

마치 함수(function)을 사용하듯 호출해서 실행 혹은 return값을 받거나 하는 등

그렇게 사용한다고 생각해도 무방한겁니꺄?

개님의습성 (2,500 포인트) 님이 2013년 6월 12일 질문

1개의 답변

+3 추천
 
채택된 답변
일단 private과 static을 따로 설명드릴께요...

 

우선 private, public..등등은 접근 지정자라는 명칭을 가지고 있는데요...

 

말그대로 멤버변수(필드), 멤버 메소드에 관한 접근 권한을 부여하는 것입니다..

 

자바로 프로그램을 하게되면 다수의 클래스를 만들게 됩니다..

 

이때 멤버 변수나 메소드를 선언된 클래스 안에서만 접근할수 있도록 할 것인지.. 아미면 다른 클래스에서도 사용이

가능하게 할 것인지를 지정해 주는 것이라 할수 있습니다..

보통 멤버 변수는 대체로 private 접근지정자로 두어서 그 멤버 변수가 선언된 클래스에서만 접근이 가능하도록

사용하는 것이 대부분 입니다..

그리고 set/get메소드를 이용해서 이 멤버 변수를 사용할수 있도록 하고 있죠...

코드로 간략하게 설명드리자면...

public class Ex1{

   private int num;

   public  int temp;

}

public class Ex2{

  public static void main(String [] args){

     Ex1 e = new Ex1();

     e.num = 10;  <==================에러가 납니다..

     e.temp = 20;<===================이상 없지요...

}

}

위의 간략한 코드에서는 그냥 접근 지정자로 인해서 접근이 되고 안되고만을 설명드리고 있는 것이구요...

Ex1클래스의 num 멤버 변수를 접근해서 어떤 의미있는 값들을 조작하고 싶다면 쉽게 접근지정가 private를 public로

바꿔주면 되겠지만 이는 객체지향 프로그래밍의 캡슐화나 정보은닉에 관한 내용을 무시하고 프로그래밍

하게 되는 것입니다..

따라서 Ex1 클래스에 set이나 get 메소드를 정의해서 사용하는 것이 올바른 사용이라 할수 있겠지요...

public class Ex1{

   private int num;

   public  int temp;

 

  public void setNum(int n){

     this.num = n;

 }

 public int getNum(){

    return num;

 }

}

 

public class Ex2{

  public static void main(String [] args){

     Ex1 e = new Ex1();

     e.setNum(10);

     System.out.println(e.getNum());

     e.temp = 20;<===================이상 없지요...

}

}

 

어떻게 이해에 도움이 되었는지 모르겠습니다...
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 12일 답변
개님의습성님이 2013년 6월 12일 채택됨
답변 감사합니다. 저도 아직 이해가 확실히 된건지는 모르겠지만
특정 클래스에 private로 선언된 변수(?)는 다른 클래스에서는 사용을 못하는것 같고, public으로 선언된 변수는 다른 클래스에서도 사용이 가능하다는 것은 덕분에 이해가 잘 된것 같습니다.
명쾌하시네요.
접근제어자를 이렇게 쉽게 잘 설명한건 보기 힘듬..
...