java基础知识问题解答

上传人:第*** 文档编号:61714550 上传时间:2018-12-10 格式:PDF 页数:23 大小:331.64KB
返回 下载 相关 举报
java基础知识问题解答_第1页
第1页 / 共23页
java基础知识问题解答_第2页
第2页 / 共23页
java基础知识问题解答_第3页
第3页 / 共23页
java基础知识问题解答_第4页
第4页 / 共23页
java基础知识问题解答_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《java基础知识问题解答》由会员分享,可在线阅读,更多相关《java基础知识问题解答(23页珍藏版)》请在金锄头文库上搜索。

1、Java 基础知识的解答 1.java 为什么要使用继承(extends); (减少很多类的重复代码) 因为在很多类中发现有很多类中重复的属性和行为, 那么我们可以把重复的属性和行为放到 一起形成一个新的类, 然后很多类继承这个新的类, 在很多类可以直接继承这个类的属性和 行为。 2:java 中什么情况下使用继承(extends); 如果发现很多类中存在 is a 的关系, 那么就可以使用继承; 很多类我们叫子类或者是派生类, 新类叫做基类或者父类,或者超类(所有类的父类 Object,自动继承,单继承)。 3:谈谈你对 java 中继承中的理解(那些该继承,那些不该继承,那些): A.子类

2、与父类在同一个包面,除了 private 不能被继承,其余都可以被继承。 其余:friendly,protected,public。 B.在不同的包里面,只有 protected 和 public 可以被继承。 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状 态,而基类的私有成员仍然是私有的。 2. 私有继承(private) 私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员, 并且不能被这个派 生类的子类所访

3、问。 3. 保护继承(protected) 保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员, 并且只能被它 的派生类成员函数或友元访问,基类的私有成员仍然是私有的。 4.包(package)的使用规则: 包只能写在第一行, 包的含义就相当于文件夹, 区分不同的类, 同一个包中的类名不能相同, 而在不同的包中,类名可以相同。 5.java 中的静态方法能被继承吗? http:/ 结论:java 中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制 及可以

4、调用。 如果子类里面定义了静态方法和属性, 那么这时候父类的静态方法或属性称之 为“隐藏“。如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成, 至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在 “隐藏“的这种情况。 2). 多态之所以能够实现依赖于继承、接口和重写、重载(继承和重写最为关键)。有了继 承和重写就可以实现父类的引用指向不同子类的对象。重写的功能是:“重写“后子类的优先 级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。 3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现 多态,不能实现父

5、类的引用可以指向不同子类的对象。非静态方法可以被继承和重写,因此 可以实现多态。 6.继承里面的 super 关键字 A.如果子类继承父类,在子类中怎么调用指定的构造方法:super(参数);且 super(参数) 是写在子类构造方法的第一行,如果子类构造方法中没有 super 那么就是默认 super(); B.如果在子类中一定要执行父类的某个构造方法,那么就 super.Method(参数) C.先静态方法(静态代码块),后构造方法。在声明阶段时候:static 就会被创建。 7.重写(Override)的原则和原因: 原则: A.同名,同参,同返回值,顺序和个数一致; B.接口的重写方法

6、的修饰符只能大于或者等于父类的修饰符。 C.子类重写的异常只能小于等于父类的异常。 原因: 如果发现父类的行为不能解决子类的问题,那么我们就重写父类的行为(覆盖父类的行为)。 8.重写(Override)与重载(Overload)的区别: A.重载在一个类中:同名,不同的参数个数或者类型。 B.重写在继承关系中:同名,同参。 9.四大修饰符合基本数据类型: private它修饰的属性,方法都只能在本类中访问 public它修饰的,是所有类都可以访问 缺省它修饰的,只能在本包中访问 protected 它修饰的只能在本包以及子类中访问 修饰符本类本包不同包的父子类其他类 Private frie

7、ndly Protected(子类) Public 基本数据类型: Boolean,byte(1),char(8),short(16),int(32),float(32),double(64),long (64) (大小:-2 的(次方)-12 的(次方) 10.类与类的关系(对象与对象的关系): 一对多的关系;多对多的关系;一对一的关系(讨论:角色,用户,权限之间的关系); (重写 toString 可以输出所有的属性) 11.类和对象的定义,关系与区别 定义: 类的概念: 类是具有相同属性和服务的一组对象的集合。 它为属于该类的所有对象提供了统 一的抽象描述,其内部包括属性和服务两个主要部

8、分。在面向对象的编程语言中,类是一个 独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角 度来说,对象 是问题域或实现域中某些事物的一个抽象, 它反映该事物在系统中需要保存的信息和发挥的 作用;它是一组属性和有权对这些属性进行操作的一组服务 的封装体。客观世界是由对象 和对象之间的联系组成的。 关系: 类与对象的关系就如模具和铸件的关系 类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性) 和相同行

9、为(方法)的对象。 区别: A.类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽 象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不 存在于现实世界上。 B.对象是类的一个具体。它是一个实实在在存在的东西。 C.类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存 在于内存空间中。 D.对象是一个动态的概念。 每一个对象都存在着有别于其它对象的属于自己的独特的属性和 行为。对象的属性可以随着它自己的行为而发生改变。 12.多态的定义,表现形式,作用,例子; 定义: 多态指同一个实体同时具有多种形式。 表

10、现形式: 方法的多种表现形式:方法的多态(通过:重载与重写来完成);对象的多种表现形式:对 象的多态(通过继承来完成,只有在运行是才能确定父类的引用具体指向哪一个对象) 作用: 提高代码灵活性,可以重用以及拓展(提高代码的可拓展性(兼容),可维护性) 可拓展性:当增加一个需求时候,我们不需要修改一个类中的方法。 (就说功能强,兼容强, 拓展好) 例子: 通过父类来达到兼容子类(public void judge(class c)class 就是父类。只有在这个方法运行 时候我们才可以知道 judge 的方法指向那个对象) 13.封装的定义,表现形式,作用,例子; 定义 A.封装是把过程和数据包

11、围起来,对数据的访问只能通过已定义的接口。 B.封装把对象的所有组成部分组合在一起; 封装定义程序如何引用对象的数据? 封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 作用: A.对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题, 提高 了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。 B.对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少 了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。 14.控制反转 控制反转(Inversion of Control,英文缩写为 IoC)是一个重要

12、的面向对象编程的法则来削减 计算机程序的耦合问题,也是轻量级的 Spring 框架的核心。 控制反转一般分为两种类型, 依赖注入(Dependency Injection,简称 DI)和依赖查找(Dependency Lookup)。依赖注入 应用比较广泛。 15.OOP 百度百科,J2EE 百度百科 J2EE 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制; 16. Exception(异常) 学习异常的原因,怎么处理异常(1.编译时异常,2,运行时异常); 概念:(concept) 就是 java.lang.Exception(所有具体异常父类)这个类用于表示异常(异常不等

13、于错误); java.lang.Throwable 的子类和 java.lang.Error 都是 Throwable 的子类 方法:(method) Exception()构造详细消息为 null 的新异常。 Exception(String message)构造带指定详细消息的新异常。 Exception(String message, Throwable cause)构造带指定详细消息和原因的新异常。 Exception(Throwable cause)常用的实例方法 void printStackTrace()将此 throwable 及其追踪输出至标准错误流 (默认是在控制台输出)

14、。 String getMessage()返回此 throwable 的详细原因。 处理异常: try 写代码 catch(异常类 变量) 处理异常 catch(异常类 变量) 处理异常 Finally不管发生还是不发生异常finally 都会执行 (运行时候:System.exit(0)关闭进程) 17. final 和 finally 的区别,throw 与 throws 的区别 final 是定义常量的关键字,而 finally 是在异常中最终执行的关键字 throw 是抛出异常对象,写在方法里面的;throws 是抛出异常类,写在方法头。 为什么要使用 throw,throws? th

15、row,throws 这 2 个关键字一起使用吗? 如 果 是 写 了 throw, throw 后 面 不 是 运 行 时 异 常 carch(exception e)throw new RuntimeException() 那么 throws 一定要写;如果 throw 后面是运行时异常(throw new RuntimeException()那么 throws 可以不写; 反过来如果写了 throws 那么 throw 可以 不写 ,但是在调用这个方法里面一定要处理。throws 我们一般用于判断方法体是否出现错 误 自定义异常 我们的异常 只有那么多在开发中远远不够所以我们可以自定义异

16、常做法 class MyException extends Exception 或者 Throwable 写 4 个构造方法这 4 个构造方法 的参数分别与 Exception 或者 Throwable 一致 4 个构造方法中我们就可以一行代码 super(参数分别是构造方法的参数) 例子: public class MyException extends Exception public MyException() public MyException(String message) super(message); public MyException(String message, Throwable cause) super(message,cause); public MyException(Throwable cause) super(cause); 18. 类图怎么画(类图百

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号