访问控制权针对于封装做一个总结。封装与访问控制权限有直接联系。在Java中一共支持四种访问权限:public protected default private
这四种访问控制权限特点
private default protected public
protected此权限与包的定义有关,如果不在同一个包中,并且没有继承权限。protected不能用
声明属相private声明方法public
访问控制权针对于封装做一个总结。封装与访问控制权限有直接联系。在Java中一共支持四种访问权限:public protected default private
这四种访问控制权限特点
private default protected public
protected此权限与包的定义有关,如果不在同一个包中,并且没有继承权限。protected不能用
声明属相private声明方法public
jar命令
在任何一和项目里一定会存在大量的*.class文件。直接使用文件过多,而且导致程序没有结构,可以使用jar命令压缩
所有的jar文件必须配置classpath中使用
使用包可以将一个完整的程序拆分为不同的文件进行保存。不同包会互相访问,此时需要导入包的操作。input操作
cn.mldn.util.Message 包小写
public class 和class
文件名称必须和类名称保持一致,*。java中只能有一个public class 要被不同的包所访问
class类只能被本包所访问
再定包的时候有点,表示子目录。如果说类有包的定义,就让其保存在指定目录下。可以使其自动生成
java -d. Hello.java
-d 生成目录
. 设置保存路径 ,当前保存路径
编译要添加包名称
所有的类都要定义在包之中,完整类名称就是包。类
Interger系统类 装箱拆箱
1.5之前使用的形式
之后Java为了方便开发提供了自动装箱和自动拆箱机制,可以直接利用包装类对象进项数学计算。
包装类
Java设计之初有一个基本原则,一切皆对象,一切操作都要求对象的形式进行描述。
匿名内部类
类只产生一次,不需要声明。
使用匿名内部类前提:必须基于接口或者抽象类的应用
如果匿名内部类定义在了方法里面,方方的参数或者是变量要被匿名 内部类访问,必须加上final关键字。
减少类的定义
整合链表应用,进一步巩固接口的作用(标准)
要求以程序为准
一个宠物商店保存多个宠物的信息(年龄,姓名)(标准是符合宠物)完成一些宠物的操作
修改链表
长期困扰我们的事情就是链表问题,因为在讲解所有问题之前,一直带着疑问,链表不能统一数据。每次使用链表都要重复开发。但是有了Object,就能解决了。因为一切类型Object都能接收。由于链表之中由于需要对象比较功能,这一功能Object也提供。
Object类可以接受一切引用数据类型,因为Object是所有类的对象。除了对象之外,数组和接口之外都可以接收。
接收数组数据
Object obj=new int []{1,2,3};//向上转型
System.out.println(obj);//
if(obj instanceof int[]){
int data[]=(int [])obj;//向下转型
for(int x=0;x<data.length;x++)
{
System.out.println(data[x]);
}
}
整个程序的参数统一在了Object上
对象比较在很多的开发都是一定要用到的概念,compare用作比较方法的名称,但是不标准,标准是使用equals()方法
很多系统类库都用equals
取得对象信息toString()
如果说现在是一个String类对象,直接输出这个对象可以取得字符串的内容。
直接调用对象和ToString对象结果一样。在进行对象输出的时候输出操作会自动调用对象中的ToString()方法在输出。Object的ToString为了适应所有对象的输出所以只输出了对象的编码。如果有需要可以覆写此方法。
输出对象代码可以节约。
Object类的作用,常用方法,接受引用数据的类型,修改链表。
经过一系列的学习,可以发现最麻烦的问题:有对象有数组有接口,这么多数据怎么进行统一。Object设计。
是所有类的父类,任何一个类在定义的时候如果没有明确继承一个父类,他是O
接口较为重要
多态性的依赖:方法的覆写
方法的多态性:方法的重载:同一个方法名称,会根据传入参数的类型及个数不同执行不同的方法体
方法的覆写:同一个方法会根据子类的不同实现不同的功能
对象的多态性 指的是发生在继承关系中,子类和父类的转换
向上转型 父类 父类对象=子类实例 自动完成
向下转型子类 子类对象=(子类)父类实例 强制完 成
父类描述范围更大
向上转型为了完成参数的统一
向下转型有风险ClassCastException
在Java中final称为终结器 Java可以使用final定义类,方法
1)使用final定义的类不能再有子类
final class A{}
class B extends A
2)final不能被子类所覆写,防止子类破坏
public final void
3)使用final定义的变量就成为了常量
如果发现在父类中的方法名称功能不足(不适合于本子类)但是又要使用这个函数,使用覆写
子类覆写的方法不能够拥有比父类更严格的访问控制权限
public>default>private private要求严格
父类public 子类 public
子类使用default权限,比,父类使用public权限更加严格。 此时根本不能称为覆写。
父类使用private,子类使用public。权限上符合覆写要求。 但是private对子类是不可见的。实际上相当于子类调用了一个新的函数而已。
this.首先查找本类,不存在才会查找父类中的方法。没有会产生错误。
super.表示调用的不查找子类中的子方法
重载与覆写的区别?overloading &over
rde
继承有自己的要求
1)Java不允许多重继承,但是允许多层继承
C++一个子类可以继承多个父类
写的代码最好不要超多三层,太凌乱了
2)子类在继承的时候严格会继承父类中所有操作 ,但对于私有操作属于隐式继承,
3)在子类对象构造之前一定会先使用父类的构造。
super()父类中有无参构造加或者不加没有区别。
super子类调用父类中的构造方法,放在子类构方法首行。和this()一致,两者不能同时出现,子类对象构造调用前一定会先执行父类构造
class 子类 extends 父类
子类被称为派生类 父类超类
数据删除 remove(数据类型 变量)
删除的数据是根节点:root Link类中处理
删除的不是跟节点,而是普通节点,上个节点的next=当前节点的next Node类中处理