Java中private和public_Java中private、protected、public和default的区别

区别:

public:可以被所有其他类所访问

private:只能被自己访问和修改

protected:自身、子类及同一个包中类可以访问

default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

打个比方: PUBLIC相当于外人可以调用.private相当于只家庭内可以调用,protected相当于亲戚可以调用.

缺省的含义: 包内可以调用,即只要是同一个包内,都可以调用. 局限性比protected 大,比public 小. 从'外人'的角度看,类似于public,但又比public 多了个不伦不类的包限定.

我写了个例子:

packageknowledge;public classPublicClass {private intpublic1;private intpublic2;private int age=12;//私有类

private classIn{public voidprint(){

System.out.println("I am private method "+age);

}

}protected classprotectA{public voidprintProtect(){

System.out.print("I am protected method "+age);

}

}public voidoutPrint(){newIn().print();

}

}

packageknowledge;public class ProtectedClass extendsPublicClass {publicProtectedClass(){super();//super.outPrint();//protectA protect1 =new protectA();//protect1.printProtect();

}public voidprotectPrint(){

(newprotectA()).printProtect();;

}

}

packageknowledge_test;importknowledge.ProtectedClass;importknowledge.PublicClass;public classabc_test {public static voidmain(String[] args) {//TODO Auto-generated method stub//MyObject object1=new MyObject();//MyObject object2=new MyObject();//

//object1.object=object2;//object2.object=object1;//

//object1=null;//object2=null;

PublicClass a=new PublicClass(); //不同的包可以访问

a.outPrint();

ProtectedClass b=newProtectedClass();//

//b.protectPrint();//

}

}classMyObject{

MyObject object;

}

注意:Java 类的内部可以有private 类:它用来完全隐藏实现的细节,也就是说我的心脏,只有我自己可以操作,别人都不行,

举个例子:

classOut {private int age = 12;private classIn {public voidprint() {

System.out.println(age);

}

}public voidoutPrint() {newIn().print();

}

}public classDemo {public static voidmain(String[] args) {//此方法无效

/*Out.In in = new Out().new In();

in.print();*/Out out= newOut();

out.outPrint();

}

}

如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类

上面的代码中,我们必须在Out类里面生成In类的对象进行操作,而无法再使用Out.In in = new Out().new In() 生成内部类的对象,也就是说,此时的内部类只有外部类可控制

如同是,我的心脏只能由我的身体控制,其他人无法直接访问它

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值