private类或接口的含义

问题描述

private的属性或方法含义明确,即不能在类外部引用。private的类什么意思呢?显然像上面那样理解是大大咧咧的。下面代码源自Java编程思想,注释掉的是编译错误的。明白的同学给讲解下。publicclassTest{publicstaticvoidmain(String[]args){Aa=newA();//A.Bb=a.getB();//a.getB().f();a.receiveB(a.getB());A.BImplbImpl=(A.BImpl)a.getB();print(""+(a.getB()instanceofA.BImpl));}privatestaticvoidprint(Stringmsg){System.out.println(msg);}}classA{privateinterfaceB{voidf();}publicclassBImplimplementsB{publicvoidf(){}}publicBgetB(){returnnewBImpl();}publicvoidreceiveB(Bb){}}

解决方案

本帖最后由 jiangh33 于 2014-08-03 18:31:48 编辑
解决方案二:
private定义的类或接口不能直接new
解决方案三:
当一个内部类使用了private修饰后,只能在该类的外部类内部使用。
解决方案四:
外部不能使用,但是这样的类一般无多大意义
解决方案五:
与其它属性是一样的,private修饰的类在外部不能访问,只能被该类访问。所以你在Test这个类去访问A.Bb=a.getB();会出错
解决方案六:
百度一下有关内部类的东东你就懂了
解决方案七:
类的访问修饰符,网上很多看看。
解决方案八:
private类,我第一反应就是单例,写单例的时候会用,其他的时候我没怎么用过。privateinterface木有见过。
解决方案九:
而且我记得interface只能public和default吧
解决方案十:
私有类一般是内部类,不允许在外部创建该类对象publicclassTest{publicstaticvoidmain(String[]args){newdemo().newA();//truenewdemo().newB();//false}}classdemo{publicclassA{//dosomething}privateclassB{//dosomething}}

解决方案十一:
首先,我刚学java,我理解的类是public或者默认的:public类可以被其他包使用,而默认的只能在自己包里使用。其次,好像有private类,是实现内部类的,具体还没学到。
解决方案十二:
内部类也是类成员,设置为private就不能被外部访问.
解决方案十三:
你可以把他当成一个私有属性看待,这样比较容易理解,即只能在类内部访问。
解决方案十四:
你既然知道”private的属性或方法含义明确,即不能在类外部引用“为什么还A.B呢??所以这个与你说的自相矛盾,既然B被private修饰所以A.B编译报错
解决方案十五:
类内部的类,我是这么理解的。
解决方案:
packageest.net;publicclassTest5{publicstaticvoidmain(String[]args){Aa=newA();A.Bb=a.getB();a.getB().f();a.receiveB(a.getB());A.Bb=a.newBImpl();A.BImplbImpl=a.newBImpl();bImpl.f();print(""+(a.getB()instanceofA.BImpl));}privatestaticvoidprint(Stringmsg){System.out.println(msg);}}classA{privateinterfaceB{voidf();}publicclassBImplimplementsB{publicvoidf(){System.out.println("hello");}}publicBgetB(){returnnewBImpl();}publicvoidreceiveB(Bb){b.f();}}B是私有的不能再类外引用;
解决方案:
private类的含义是使类拥有一个类成员变量,which能拥有类的一些feature。我想了个使用情况,工作中我从没这样使用过,但我觉得这样写还可以,你只看看就可以了。publicclassA{privateinterfaceI{voiddosth();}privateclassBimplementsI{publicvoiddosth(){}}privateclassCimplementsI{publicvoiddosth(){}}privateclassDimplementsI{publicvoiddosth(){}}publicstaticvoidoutwardInterface(inttype){Ii=null;switch(type){case0:i=newA().newB();case1:i=newA().newC();case2:i=newA().newD();default:i=newA().newB();}i.dosth();}}

时间: 2024-07-31 23:26:33

private类或接口的含义的相关文章

UML类图各符号含义

UML类图各符号含义   类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也还

C#类和接口、虚方法和抽象方法及值类型和引用类型的区别

1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负责功能的具体实现! 在类中也有抽象类的定义,抽象类与接口的区别在于: 抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化. 但接口是一个行为的规范,里面的所有东西都是抽象的! 一个类只可以继承一个基类也就是父类,但可以实现多个接口 PS:接口除了规范一个行为之外,在具体项目中的实际作用也是十分重要的,在面向对象的设计原则以及设计模式的使用中,无不体现

[精通Objective-C]类,接口,协议与扩展

[精通Objective-C]类,接口,协议与扩展 参考书籍:<精通Objective-C>[美] Keith Lee 目录 精通Objective-C类接口协议与扩展 目录 类 类的接口 类的实现 实例变量 属性 方法 协议 分类 扩展 类 创建一个类名为Atom,继承于NSObject的类.Atom类由两个文件组成,Atom.h和Atom.m,分别为类的接口和实现. 类的接口 Atom类的接口是在头文件Atom.h中设置的,用于声明类的属性和方法. #import <Foundati

《C++面向对象高效编程(第2版)》——3.10 设计期间的重点——类的接口

3.10 设计期间的重点--类的接口 C++面向对象高效编程(第2版)在第2章中讨论了接口和实现的概念,现在来进一步学习它们.当客户(任何使用类创建对象或通过继承使用类创建另一个类的人)查看类时,最关心的是类中声明的内容.更具体地说,如果客户只准备创建类的对象(大多数客户都会这样做),他会注意public区域:如果客户试图通过类的继承创建(设计)一个新类,他会注意public和protected区域,这种情况下,无需过多关注private区域. 通过观察类的公有成员函数,客户可获知能对类对象进行

java 学习 私有类实现接口 ,一个类继承来的方法和接口实现方法重复第八天

jjava的privete 修饰的方法或者类 都只能在本类或者外部类中访问   . 在内部私有类基础上返回 私有类实现对象   代码 interface Animal   //Animal接口  { void eat();}class zoo   { Animal GetAnimal() {  return new Animal()  {   public void eat()   {    System.out.println("animal eat");   }   };  }Ti

艾伟:C#类和接口、虚方法和抽象方法及值类型和引用类型的区别

1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负责功能的具体实现! 在类中也有抽象类的定义,抽象类与接口的区别在于: 抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化. 但接口是一个行为的规范,里面的所有东西都是抽象的! 一个类只可以继承一个基类也就是父类,但可以实现多个接口 PS: 接口除了规范一个行为之外,在具体项目中的实际作用也是十分重要的,在面向对象的设计原则以及设计模式的使用中,无不体

基类、接口的应用——表单控件:一次添加、修改一条记录,一次修改多条记录。(上)

好久没发帖子了,又加了不少的功能呀.(图片仅是测试,不代表什么表情.) 本来我也想写一个2007的总结的,但是看到很多人都写了,我就不凑热闹了,写点和代码有关系的吧. 写作原因: 1.在项目里做得最多的操作恐怕就是保存数据了,总是要写一大堆的代码,能不能简单一点呢?2005来了,似乎可以减少一些代码,但是03里怎么办呢? 2.基类.接口.策略模式,好多高手都讨论过了,但是都是理论上的,在实践中如何应用呢?在webform 里面又怎么使用呢? 目的: 1.做一个"控件"来应对各种表单的录

C++类和接口的设计原则探讨

我这篇文章的主旨是介绍一部分类和接口的高质量设计的准则.这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码,而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动,主要也就是保持二进制代码兼容(binary compatibility)和源代码兼容(source compatibility).我希望这些准则能帮助刚从学校进入工业领域的朋友尽快适应更高标准的编程要求,尽快提升自己的设计能力. 文中以C++类的设计为讨论范围. 总提 面向对象编程对于产出高质量,易维护的代码

C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义

类型判断符号:   C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 instanceof 符号判断   类与接口的继承:    C#:public class MDataRow : List<MDataCell>, IDataRecord, ICustomTypeDescriptor Java:public class MDataRow extends ArrayLi