Declaration Access Can Be Weaker  

 

Declaration Access Can Be Weaker  ï¿½Ë»ï¿½ï¿½ ���� �ͺ��� �� ���� ���� ���Ѱ� �Բ� ����� �� �ִ� Ŭ���� ����� Ž���ϱ� ���� ���˴ϴ�.

 

�� �˻�� ���� �ɼ��� �����ϴ�:

Ŭ���� ����� ���� ��Ű�� ���� ���ü� ������ �����Ͻʽÿ�


���� �� üũ �ڽ��� ���õǸ� �˻�� ������ ������ Ŭ���� ����� ���� ��Ű�� ���� ���ü� ������ ������ ������ ���Դϴ�.


���� Ŭ���� �Ǵ� Ŭ���� ����� ��Ű�� ���� ���ü� ������ ���� �� ������ �� �������� �ʰ�(���� ���, �װ��� ��ȣ�� �������� ������ private �� �� ���� �����ϴ�) �� üũ �ڽ��� �Ұ����ϰ� �Ǹ�, �׷� Ŭ���� �Ǵ� Ŭ���� ����� Ʈ�� ���⿡ ��Ÿ���� ���� ���Դϴ�.

��Ű�� ���� ���ü� ������ �鷹���� Ŭ�������� �����Ͻʽÿ�

���� �� üũ �ڽ��� ���õǸ� �˻�� ��-������ Ŭ������ ���� ��Ű�� ���� ���ü� ������ ������ ������ ������ ������ ���Դϴ�.


���� Ŭ���� �Ǵ� Ŭ���� ����� ��Ű�� ���� ���ü� ������ ���� �� ������ �� �������� �ʰ�(���� ���, �װ��� ��ȣ�� �������� ������ private �� �� ���� �����ϴ�) �� üũ �ڽ��� �Ұ����ϰ� �Ǹ�, �׷� Ŭ���� �Ǵ� Ŭ���� ����� Ʈ�� ���⿡ ��Ÿ���� ���� ���Դϴ�.

���� �ܺ� Ŭ�����κ��� ������ �� ���� Ŭ���� ����� ���� private ��  �����Ͻʽÿ�

 

���� �� üũ �ڽ��� ���õǸ� �˻�� �ٸ� Ŭ������ �ƴ� �ܺ� Ŭ�����κ��� ������ �����Ǵ� �� ���� Ŭ���� ����� �����ϴٸ� private���� ���� ���� ���� �� ���Դϴ�.

 

���� Declaration Access Can Be Weaker  üũ �ڽ��� ���õǰ� Inspection ï¿½ï¿½  � ������ ã�´ٸ�, Inspection ï¿½ï¿½ ������� �� ���� ���� ������(���� ���, �ٸ� Ŭ���� ������� �������� �ʴ� public ���)�� ���� �� �ִ� Ŭ������ Ŭ���� ����� �����ϴ�Access modifier ï¿½ï¿½ï¿½ï¿½ ǥ���մϴ�.

 

������ ������� ��ſ��� ��� �޼ҵ峪 �޼ҵ���� Ʈ�� ���⿡�� ���õ� �׸��� ���Ǿ��°��� �����ִ� ��� �ʵ带 �����ϴ�. �� �ʵ嵵 �޼ҵ尡 ��ġ�ϴ� ������ Ŭ���� �̸��� ǥ���մϴ�.  ï¿½Þ¼Òµï¿½ �̸��� Ŭ���ϸ� ����� �������� �� �������� �׺����Ʈ �� ���̰�, �޼ҵ� �̸� ������ ij���� ��ġ�� ���Դϴ�.
�� Ʈ�� ���⿡�� �׸��� ������ ��ư�� Ŭ���ϴ� �Ϳ� ���� �Ҹ��� ���� �޴��� ��ſ��� ���� �ذ�μ� ���ȵ� ���� ������ ä���ϱ� ���� ������Ʈ �մϴ�.

 

��� ��

 

���� ���, ���� Ŭ������ ����ϴ�:

 
package aPackage;
 
public class AClass {
    public void methodA(){
        //some code here
    }
 
    public void methodB(){
        //some code here
    }
 
    public static void main(String[] args) {
        AClass aClass = new AClass();
        aClass.methodB();
    }
}
 

������ Ŭ������ methodB() ï¿½ï¿½ ����ϰ� �ִ� �ٸ� ������ �� �ٸ� Ŭ����.  

 
package aPackageTwo;
 
import aPackage.AClass;
 
public class AClassTwo {
    void methodInTwo(){
        AClass aClass = new AClass();
        aClass.methodA();
    }
}
 

Inspection ï¿½ï¿½ AClass �� ����ǰ� �� �Ŀ������� �� �����찡 ��Ÿ�� ���Դϴ�.



public���μ� ����� methodB() ï¿½ï¿½ �ٸ� Ŭ����/��Ű���κ��� ���� �ҷ����� �ʰ� (�׷��Ƿ�) ������ �� ������ �� �ִ�(�� ��쿡 private) �˻翡 ���� ��ũ�˴ϴ�.