java基础的知识
1.java基础知识有哪些
对于Java开发学习者来说,基础掌握的知识点有以下几种:
1. Java面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
2. Java虚拟机的概念,任何一种可以运行Java字节码的软件均可看成是Java的虚拟机(JVM)
3. JDK顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。
4. JRE的概念,普通用户而只需要安装JRE(Java Runtime Environment)来运行Java程序。而程序开发者必须安装JDK来编译、调试程序。
5. Java中覆盖(Override)是指子类对父类方法的一种重写,子类只能抛出比父类更少的异常,且访问权限不能比父类的小。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法。
Java中重载(Overload)表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。
2.java基础知识有哪些
1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。
java语言是跨平台,jvm不是跨平台的。JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。
JDK(Java Development Kit):java的开发工具,包括jre+开发工具2、环境变量path和classpath的作用是什么?(1)path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,用于指定DOS窗口命令的路径。(2)Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。
3、变量有什么用?为什么要定义变量?什么时候用?答:变量的作用:用来存储数据。为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用4、&和&&的区别?答:(1)&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算;只能操作boolean类型数据;(2)&不会出现短路,将整个表达式都运算。
既可以操作boolean数据还可以操作数。5、标示符命名规则:由数字(0-9),大小写英文字母,以及_和$组成。
不能以数字开头。不能使用关键字来自定义命名。
6、数据类型:(1)基本数据类型(4类8种):整数类型:byte、short、int、long浮点数类型:float、double字符类型:char布尔类型:boolean(ture false)(2)引用数据类型:类接口数组7、类型转换精度从高到低 double float long int short(char) byte (1)自动类型转换 将一个低精度---高精度 (2)强制类型转换 将一个高精度---低精度(精度会下降)8、java语言的三种技术架构J2EE:企业版是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发。
J2SE:标准版是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。
比如Java版的扫雷。J2ME:小型版是为开发电子消费产品和嵌入式设备提供的解决方案。
该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。9、java的跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
跨平台的原因:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
10、有符号数据的表示法(次重点)原码,反码(原码取反),补码(反码+1)。
3.JAVA基础需要掌握哪些知识
建议你看本书《Think in java》。上边的讲解很容易懂。
学java:
先把基本语法搞懂,你学过C++,java的语法和C++很像。你只要着重把他们不同的地方学清楚就行。
然后搞懂类。java纯面向对象的。所有的代码都在类中。所以你要把java中重要的类学一遍。比如流类,集合类,数据库操作类,网络编程的类等。当然,在这之前你要把java面向对象的思想弄懂,和C++有什么区别。这样你学习类的时候就容易多了。
最后多实践点,学了类之后,就用你学的类写点小程序,加深理解。
API说白了就是别人写好的类。像上边说的流类,集合类等都是API。API都有相应的文档供我们学习。你学java基础,一般在下载JDK时会同时下载下相应的文档。没有的话你可以到官方网站上去下载。
4.java基础都有那些
java语法基础1,关键字:其实就是某种语言赋予了特殊含义的单词。
保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。2,标示符:其实就是在程序中自定义的名词。
比如类名,变量名,函数名。包含 0-9、a-z、$、_ ; 注意: 1),数字不可以开头。
2),不可以使用关键字。3,常量:是在程序中的不会变化的数据。
4,变量:其实就是内存中的一个存储空间,用于存储常量数据。 作用:方便于运算。
因为有些数据不确定。所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。什么时候定义变量?只要是数据不确定的时候,就定义变量。
变量空间的开辟需要什么要素呢? 1,这个空间要存储什么数据?数据类型。 2,这个空间叫什么名字啊?变量名称。
3,这个空间的第一次的数据是什么? 变量的初始化值。变量的作用域和生存期:变量的作用域: 作用域从变量定义的位置开始,到该变量所在的那对大括号结束;生命周期: 变量从定义的位置开始就在内存中活了; 变量到达它所在的作用域的时候就在内存中消失了;数据类型: 1):基本数据类型:byte、short、int、long、float、double、char、boolean 2):引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double 自动类型转换:从低级别到高级别,系统自动转的;强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;运算符号: 1)、算术运算符。 + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
+:连接符。 ++,-- 2)、赋值运算符。
= += -= *= /= %= 3)、比较运算符。 特点:该运算符的特点是:运算完的结果,要么是true,要么是false。
4)、逻辑运算符。 & | ^ ! && || 逻辑运算符除了! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true ^:异或:和或有点不一样。 两边结果一样,就为false。
两边结果不一样,就为true. & 和 &&区别: & :无论左边结果是什么,右边都参与运算。 &&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别:|:两边都运算。 ||:短路或,如果左边为true,那么右边不参与运算。
5)、位运算符:用于操作二进制位的运算符。 & | ^ << >> >>>(无符号右移) 练习:对两个变量的数据进行互换。
不需要第三方变量。 int a = 3,b = 5;-->b = 3,a = 5; a = a + b; a =8; b = a - b; b =3;c a = a - b; a =5; a = a ^ b;// b = a ^ b;//b= a ^ b ^ b = a a = a ^ b;//a= a ^ b ^ a = b; 练习:高效的算出 2*8 ------------------> 位移运算的考验,java基础面试中它的曝光率不低哦5,语句。
If switch do while while for 这些语句什么时候用? 1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。 但是建议使用switch,效率相对较高。
switch(变量){ case 值:要执行的语句;break; … default:要执行的语句; } 工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了 就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止; 2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种; 3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。 2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
3)、当某些语句需要执行很多次时,就用循环结构。 while和for可以进行互换。
区别在于:如果需要定义变量控制循环次数。建议使用for。
因为for循环完毕,变量在内存中释放。break:作用于switch ,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。
要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。代码片段:z: //for循环标号 for(int x=0;x<3;x++){ for(int y=0;y<2;y++){ //不带标号的就是结束整个循环体的作用,在那个循环内部就结束哪个循环 if(x==1)break; //带标号跳过break后面的语句,回到标号位置的循环,继续该循环下次的条件判断, //已决定是否执行该循环体 if(x==2&&y==1)break z; } } continue:只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
java中的函数的定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){ 执行语句; return 返回值; } 当函数没有具体的返回值时,返回的返回值类型用void关键字表示。如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数。结束功能。
如何。
5.JAVA基础包括那些知识
1、对象的初始化(1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。
(2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。
2、继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。
(3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。
(4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。
3、关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是 第一条语句。
4、有关public、private和protected (1) 无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类 在同一文件夹中,c.两个类在同一软件包中。 (2) protected:继承类和同一软件包的类可访问。
(3) 如果构造方法为private,那么在其他类中不能创建该类的对象。 5、抽象类 (1) 抽象类不能创建对象。
(2) 如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。 (3) 继承抽象类的类在类中必须实现抽象类中的抽象方法。
(4) 抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
(5) 间接继承抽象类的类可以不给出抽象方法的定义。 6、final关键字 (1) 一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。
(2) 常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化 。 (3) final修饰的方法不能被重置(在子类中不能出现同名方法)。
(4) 如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据 成员可为final也可不是。 7、接口interface (用implements来实现接口) (1) 接口中的所有数据均为 static和final即静态常量。
尽管可以不用这两个关键字修饰 ,但必须给常量赋初值。 (2) 接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。
(3) 如果使用public来修饰接口,则接口必须与文件名相同。 8、多重继承 (1) 一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗 号分隔。
(2) 接口之间可多重继承,注意使用关键字extends。 (3) 一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口 继承的接口的方法,接口中的所有方法均须在类中实现。
9、接口的嵌入 (1) 接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不 能访问。
(2) 嵌入接口中的接口一定要为public。 10、类的嵌入 (1) 类可以嵌入另一个类中,但不能嵌入接口中。
(2) 在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。 手段有两种: class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); } (3) 一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动 被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。
接上例: class C extends A.B { C() { new A().super(); // 这一句就实现了对内部类构造方法的调用。 } } 构造方法也可这样写: C(A a) { a.super(); } // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。
11、异常类 JAVA中除了RunTimeException 类,其他异常均须捕获或抛出。至于数据库,WEB,JSP,JS之类的那是高级部分了。
6.java中有哪些知识是重要的必须掌握的
在java的学习中,面向对象应该是java技术的重中之重,虽然在生活中没有对象可以面对,但在技术中还是要一直接触面对对象,而且不可避免。
今天对面向对象来了一个小总结。一、面向对象的特点:1、将复杂的事情简单化。
2、面向对象将以前的过程中的执行者,变成了指挥者。3、面向对象这种思想是符合现在人们思考习惯的一种思想。
过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。二、匿名对象使用场景:1、当对方法只进行一次调用的时候,可以使用匿名对象。
2、当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。
三、在类中定义其实都称之为成员。成员有两种:1、成员变量:其实对应的就是事物的属性。
2、成员函数:其实对应的就是事物的行为。所以,其实定义类,就是在定义成员变量和成员函数。
但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。四、类中怎么没有定义主函数呢?注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。
主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。五、成员变量和局部变量的区别:1、成员变量直接定义在类中;局部变量定义在方法中,参数上,语句中。
2、成员变量在这个类中有效;局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。3、成员变量存在于堆内存中,随着对象的产生而存在,消失而消失;局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
六、构造函数和一般函数有什么区别呢?1、两个函数定义格式不同。2、构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
一般函数,是对象创建后,需要调用才执行,可以被调用多次。七、创建一个对象都在内存中做了什么事情?1、先将硬盘上指定位置的Person.class文件加载进内存。
2、执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。3、在堆内存中开辟一个实体空间,分配了一个内存首地址值。
new4、在该实体空间中进行属性的空间分配,并进行了默认初始化。5、对空间中的属性进行显示初始化。
6、进行实体的构造代码块初始化。7、调用该实体对应的构造函数,进行构造函数初始化。
8、将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)。
7.java的基础知识
-A- AJAX: (建议不译,原因:专有名词) [Asynchronous JavaScript and XML,异步JavaScript及XML] annotation: 注解 Ant: (建议不译,原因:专有名词) AOP: (建议不译,原因:专有名词) [aspect-oriented programming, 面向层面编程] application: 应用 argument: 参数 -B- B2B: (建议不译,原因:专有名词) [Business-to-Business, 业务对业务] BAM: (建议不译,原因:专有名词) [Business Activity Monitoring, 业务活动监测] BMP: (建议不译,原因:专有名词) [bean-managed persistence, Bean管理的持久化] BPEL: (建议不译,原因:专有名词) [Business Process Excution Language, 业务流程执行语言] BPM: (建议不译,原因:专有名词) [Business Process Modeling, 业务流程建模] build: 建立;编译 -C- C2B: (建议不译,原因:专有名词) [Consumer-to-Business, 客户对业务] CAD: (建议不译,原因:专有名词) [Computer Aided Design, 计算机辅助设计] CAM: (建议不译,原因:专有名词) [Computer Aided Modeling, 计算机辅助建模] case-insensitive: 大小写不敏感 case-sensitive: 大小写敏感 container: 容器 cluster: 集群 CMP: (建议不译,原因:专有名词) [container-managed persistence, 容器管理的持久化] component: 组件,部件 configuration: 配置 context: 上下文,环境 control: 控件 convention: 约定 CORBA: (建议不译,原因:专有名词) [Common Object Request Broker Architecture,公共对象请求代理体系] COS: (建议不译,原因:专有名词) [Common Object Services,公共对象服务] couple: 耦合 CRUD: 专指数据库操作create, read, update, delete,可以不译 -D- Daemon: (建议不译,原因:专有名词) [Internet中用于邮件收发的后台程序] DAO: (建议不译,原因:专有名词) [Data Access Object, 数据访问对象] data: 数据 DBMS: (建议不译,原因:专有名词) [Database Management System, 数据库管理系统] DDL: (建议不译,原因:专有名词) [Data Definition Language, 数据定义语言] Declarative Programming: 声明式编程 delegate: 委托 Dependency Injection: 依赖注入 deploy: 部署 deserialize: 反序列化(也可译为反串行化),即取出 dialect: (行业)术语 directive: 指令 DIT: (建议不译,原因:专有名词) [Directory Information Tree, 目录信息树] DML: (建议不译,原因:专有名词) [Data Manipulation Language, 数据操作语言] DNS: (建议不译,原因:专有名词) [Internet Domain Name System, 因特网域名系统] domain: 域 DSL: (建议不译,原因:专有名词) [Domain-Specific Languages, 特定领域语言] DTOs: (建议不译,原因:专有名词) [data transfer objects, 数据传输对象] -E- EAI: (建议不译,原因:专有名词) [Enterprise Application Integration: 企业应用集成] ECC: (建议不译,原因:专有名词) [error correcting codes: 错误纠正代码] EIS: (建议不译,原因:专有名词) [Enterprise Information System: 企业信息系统] EJB: (建议不译,原因:专有名词) [Enterprise JavaBean, 企业JavaBean] encapsulate: 封装 ESB: (建议不译,原因:专有名词) [Enterprise Service Bus, 企业服务总线] event: 事件 -F- FAQs: (建议不译,原因:专有名词) [Frequently Asked Questions, 经常提问的问题] FIFO: 先进先出 [First in, First out] fire: 触发 firewall: 防火墙 framework: 框架 function: 函数 -G- GoF: "四人帮",对名著Design Patterns-Elements of Reusable Object-Oriented Software的四名作者的"戏"称。
[Gang of Four] granularity: 颗粒性,颗粒度 GUI: (建议不译,原因:专有名词) [Graphic User Interface: 图形用户接口] GUID: (建议不译,原因:专有名词) [Globally Unique Identifier: 全球唯一标识符] -H- hard-coding: 硬碥码 Hibernate: (建议不译,原因:专有名词) [一种为应用程序提供持久化服务的框架] -I- IDE: 集成开发环境 [Integrated Development Environment] implement: 实现 internet: 因特网 (也可以不译,原因:在中文环境下已经得到充分理解及认同) intranet: 企业内部网 IoC: (建议不译,原因:专有名词) [Inversion of Control, 控制反转] -J- JavaBean: (建议不译,原因:专有名词) JCP: (建议不译,原因:专有名词) [Java Community Process, Java社区研究] JDBC: (建议不译,原因:专有名词) [Java DataBase Connectivity, Java数据库连接] JDO: (建议不译,原因:专有名词) [Java Data Objects, Java数据对象] JES: Java企业系统 [Java Enterprise System] JOnAS: (建议不译,原因:专有名词) [ Java Open Application Server, Java开放应用服务器] JNDI: (建议不译,原因:专有名词) [Java Naming and Directory Interface, Java命名与目录接口] JTA: (建议不译,原因:专有名词) [Java Transaction API: Java事务API] JVM: (建议不译,原。
8.java 基础知识有那些
1、对象的初始化(1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。
(2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。
2、继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。
(3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。
(4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。
3、关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是 第一条语句。
4、有关public、private和protected (1) 无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类 在同一文件夹中,c.两个类在同一软件包中。 (2) protected:继承类和同一软件包的类可访问。
(3) 如果构造方法为private,那么在其他类中不能创建该类的对象。 5、抽象类 (1) 抽象类不能创建对象。
(2) 如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。 (3) 继承抽象类的类在类中必须实现抽象类中的抽象方法。
(4) 抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
(5) 间接继承抽象类的类可以不给出抽象方法的定义。 6、final关键字 (1) 一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。
(2) 常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化 。 (3) final修饰的方法不能被重置(在子类中不能出现同名方法)。
(4) 如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据 成员可为final也可不是。 7、接口interface (用implements来实现接口) (1) 接口中的所有数据均为 static和final即静态常量。
尽管可以不用这两个关键字修饰 ,但必须给常量赋初值。 (2) 接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。
(3) 如果使用public来修饰接口,则接口必须与文件名相同。 8、多重继承 (1) 一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗 号分隔。
(2) 接口之间可多重继承,注意使用关键字extends。 (3) 一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口 继承的接口的方法,接口中的所有方法均须在类中实现。
9、接口的嵌入 (1) 接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不 能访问。
(2) 嵌入接口中的接口一定要为public。 10、类的嵌入 (1) 类可以嵌入另一个类中,但不能嵌入接口中。
(2) 在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。 手段有两种: class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); } (3) 一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动 被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。
接上例: class C extends A.B { C() { new A().super(); // 这一句就实现了对内部类构造方法的调用。 } } 构造方法也可这样写: C(A a) { a.super(); } // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。
11、异常类 JAVA中除了RunTimeException 类,其他异常均须捕获或抛出。=。