现在的位置: 首页 > 综合 > 正文

java基础知识

2013年10月21日 ⁄ 综合 ⁄ 共 2042字 ⁄ 字号 评论关闭

JAVA 中接口能被实例化吗?

你概念不清啊,接口是不能实例化的,不过可以声明一个接口的引用变量,让它指向一个类的实例,当然那个类要实现了那个接口的 

接口   a   =   new   实现该接口的类();

java中的静态类只存在其内部类中。

为什么会有内部静态类的存在?
    因为非静态内部类只能声明非静态成员或方法,而静态内部类则可拥有静态的成员和方法。
但静态内部类中只能引用其外部类的静态成员或变量。因为内部静态类并不与外部类对象关联。

    此外,内部类的继承与接口与外部类独立,解决了多继承的问题。

Java有静态构造函数吗?

不可能有的,这个完全违背了面向对象的一些规则。
构造函数,是为了将一个类实例化一个对象才需要使用的,进行一些必备的初始化操作(即使你没写任何代码,实际上运行库也帮你添了很多操作)。何为静态,就是全局的,已经初始化过的,静态函数就是指该函数不和具体对象相关,只和类相关,但是构造函数是和对象直接关联的,这两个东西从面向对象的概念上完全不可能融合在一起

3.数据类型的转换

 变量相互转换图

有人会问,如果内部类里的一个成员变量与外部类的一个成员变量同名,也即外部类的同名成员变量被屏蔽了,怎么办?没事,Java里用如下格式表达外部类的引用:

outerClass.this

为什么非静态的内部类不能有静态的成员呢(在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类)

非静态内部类 个人觉得它既然是在内部 那么他应该是这个类的一个属性 那么我们知道类里面存在两种属性,类变量(即静态变量)还有对象变量(属性或字段) .
既然这个内部类是一个属性的话 如果是静态的 它属于类 当然可以存在静态变量.但是如果是对象,他里面自然不可以存在静态变量.因为它是属于对象的属性.
对象是可以调用静态属性.但不可以声明静态变量

java内部类有什么好处?为什么需要内部类?

首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。

ava中的接口到底有什么作用,有什么优点,书上说java只支持单继承,要想继承多个类的话就要用到接口,这就是java的优点,但是用了接口还得把接口中的那些方法全都重写,这有什么意思呢,还不如直接在该类中直接再定义一个方法,何必去继承呢?

无需多言,你想想我们平时用的电源插座与电器电源接头之间是什么关系。
用个比喻LZ应该更容易接受。

插座不就是一个借口,所有的电器如果想要用电,就必须接受这个规格的插座,就是必须实现所谓的接口,具体你这个电器用来干吗,我插座(接口)就不管你了,也就是功能与规范是分离的,不相干予。
假如你如果想用三头插,那好,换另外个接口,你电器接头必须实现有三插的接头规范。
接口就是个规范而已


 java 的接口到底起什么作用
 
  1、从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么?
 
  2、一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系。
 
  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。
 
  说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂。
详细的解释:
  类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
 
  接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
 
  所以接口有点象一个规范、一个协议,是一个抽象的概念;而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。
 
  从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种实现。
 
  所以就你的问题:
  1、接口中定义类方法的原型,但是不能说是空方法,因为空方法的意思是有实现体,只不过实现体是空操作。实际上接口没有定义任何实现体。 具体的实现体都是在实现接口的类中,接口只是定义了这些方法的调用方式。
 
  你当然也可以不用接口,直接在类里面写方法,但是如果你的一组方法需要在很多类里实现,那么把它们抽象出来,做成一个接口规范,不是更好么?
 
  2、一个类描述了一个实体,这个实体可能是一个复杂的对象,它的动作很多,如果把这些动作分类,用接口a定义其中的某一组动作, 接口b定义其中的另外一组动作,这样的结构,比较清楚。
 
  这种方式具备了多继承的优点,避免了多继承的缺陷。实际上在历史上,接口在很大程度上,是为了解决多继承带来的种种问题而设计出来的。
 
  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。
 
  接口里定义了方法的输入输出,这些都是协议,具体的实现都在每个类中。对于很多只需要抽象接口的地方,不需要知道具体的类是什么, 只要这个类实现了这个接口就可以了。

抱歉!评论已关闭.