`

java基础知识

 
阅读更多

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、包中那些已定义的接口,怎么知道那里面定义了什么方法。
  接口里定义了方法的输入输出,这些都是协议,具体的实现都在每个类中。对于很多只需要抽象接口的地方,不需要知道具体的类是什么, 只要这个类实现了这个接口就可以了。



分享到:
评论

相关推荐

    Java基础知识点总结.docx

    Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。

    java基础知识大全(必看经典)

    Java 基础知识大全 本资源摘要信息是 Java 基础知识大全的总结,涵盖了 Java 语言的基本概念、特点、历史发展等方面的知识点。以下是本资源摘要信息的详细内容: 一、 Java 语言的特点 * 面向对象:Java 语言是...

    java基础知识 ppt

    java基础知识,帮助初学者更快更好地掌握java。ppt内容具体易懂,希望对刚接触java的初学者有所帮助。

    java基础知识总结(很详细全面)

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)的James Gosling等人于1991年...无论是初学者还是经验丰富的开发者,对Java基础知识的深入理解和实践都是提升编程技能的关键。

    java基础知识的培训ppt

    java基础知识的培训ppt,对于java初学者来说可以有一些作用。

    java基础知识总结

    java基础知识

    JAVA基础知识总结.

    JAVA基础知识总结 JAVA基础知识总结 JAVA基础知识总结

    JAVA基础知识总结

    Java基础知识总结涵盖了Java程序设计语言的核心概念和常用知识点。在详细学习和总结这些知识点之前,首先需要对Java有一个整体的认识。Java是一种面向对象的编程语言,它具有跨平台的特性,即“一次编写,到处运行”...

    JAVA基础知识精华总结.rar

    在《JAVA基础知识精华总结》中,我们可以期待涵盖以下几个关键领域: 1. **Java语法基础**:包括基本的数据类型(如整型、浮点型、字符型和布尔型)、变量、常量、运算符、流程控制(如条件语句if-else、循环for、...

    java基础知识总结(经典)

    Java 基础知识总结是 Java 程序员不可或缺的一部分,本总结将涵盖 Java 的基础知识,包括 Java 概述、Java 语法基础、变量、数据类型、运算符、控制语句、方法、数组、继承、多态、接口、异常、IO 流等。 一、Java ...

    第一讲 Java基础知识.ppt

    【Java基础知识概述】 Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现已被Oracle公司收购)于1991年发起的“绿色项目”孕育而生,最初名为Oak。尽管最初的项目目标并未实现,但Java作为一种面向...

    Java基础知识总结 (绝对经典)

    ### Java基础知识总结(绝对经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人所开发的Oak语言,原计划用于控制嵌入式设备如有线电视交换盒和个人数字助理(PDA)。1994年...

    java基础知识点总结及面试问题

    java基础知识点总结及面试问题java基础知识点总结及面试问题java基础知识点总结及面试java基础知识点总结及面试问题

    java基础知识点总结

    java基础知识点,面试宝典,最适合你的java面试知识点,所学java知识点总结

    Java基础知识点和答案

    Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案Java基础知识点和答案...

    Java基础知识.pdf

    Java基础知识.pdf

Global site tag (gtag.js) - Google Analytics