首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
JAVA 笔记(五)
时间:
2016-04-06 11:16:37
阅读:
179
评论:
0
收藏:
0
[点我收藏+]
标签:
ClassCastExcption:类型转换异常(一般出现在多态的向下转型中容易出现)。
大的对象不能直接给小的(自己揣测的)
重写的方法,先在子类中查找,没有再在父类中查找。
子类中没有父类中出现过的方法,方法就被继承过来了。
在java中一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。(abstract)
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。
抽象方法不能有主体就是不能有{}。
抽象类不能实例化。(因为它不是具体的)
抽象类有构造方法,但是不能实例化(它的作用是用于子类访问父类数据的初始化)
抽象类的子类A;如果不想重写抽象方法,该子类是一个抽象类。B;重写所有的抽象方法,这个时候子类是一个具体的类。
抽象类的实例化其实是通过具体的子类实现的,是多态的方式 Animal a=new Cat();
抽象类的成员方法特性:A;抽象方法 强制子类做的事情 B;非抽象方法 子类继承的事情,提高代码复用性。
抽象方法的格式 public abstract void eat(); 。
一个类如果没有抽象方法,也可以定义为抽象类,这样做的意义就是不让创建对象。
Abstract 不能和private(产生冲突) 、final(产生冲突)、static(无意义,类的调用没有方法体,故没有意义)这些关键字共存。
接口(interface)是扩展性的功能。
Class 类名 implements 接口名{}
接口本身不能实例化。接口的子类A;可以是抽象类,但是意义不大。B;可以是具体的类,要重写接口中的所有抽象方法。
接口中的变量默认是常量,不管是否加了final.并且是静态的(因为有默认修饰符public static final).接口没有构造方法。那么子类如何实例化呢?因为所有的类都默认继承object类,所以可以通过该类实例化。接口中的成员方法只能是抽象方法,默认修饰符:public abstract(建议自己给出)。
可以同时实现多个接口。接口与接口之间的继承关系,可以是单继承,也可以是多继承(interface Sister extends father,mother{});
抽象类与接口的设计理念的区别:抽象类:被继承体现的是is a (是xx)的关系。抽象类中定义的是该继承体系的共性功能。接口:被实现体现的是like a(像xx)的关系,接口中定义的是该继承体系的扩展功能。
分析:从具体到抽象。实现:从抽象到具体 。使用:使用具体的。
形式参数如果是引用类型:A;类名(需要的是该类的对象)B;抽象类:需要的是该抽象类的子类对象。C;接口:需要的是该接口的实现类对象。
返回值类型如果是引用类型:A;类:返回的是该类的对象。 B:抽象类:返回的是该抽象类的子类对象。C接口:返回的是该接口的实现类的对象。
链式编程的特点:每次调用完毕之后,返回的是一个对象。(A.B().C());
包:(其实就是文件夹)作用:A;把相同的类名放到不同的包中B;对类进行分类管理。
包的定义:package 包名;多级包用.分开即可。注意事项:A;package语句必须是程序的第一条可执行的代码B;package语句在一个java文件中只能有一个C;如果没有package,默认表示无包名。
带包的编译和运行:A;手动式1.编写一个带包的java文件2.通过javac命令编译该java文件3.手动创建包名4.把2步骤的的class文件放到3步骤的的最底层包5.回到包根目录在同一目录的地方,然后带包运行。B;自动式:1.编写一个带包的java文件2:javac编译的时候带上-d即可(javac –d .helloworld)3;回到和包根目录在同一目录的地方,然后带包运行。
导入包的时候最好导到类,不要用星Package(只能有一个)>import(可以有多个)>class(可以有多个,建议是一个)(这是三者的顺序关系)
权限修饰符:public(同一类中,同一包【子类,其他类】,不同包【子类】,不同包【其他类】都可以访问)protect(同一类中,同一包【子类,其他类】,不同包【子类】可以访问)默认修饰符(同一类中,同一包【子类,其他类】可以访问)private(同一类中可以访问)访问权限依次减小。这四种权限修饰符在任意时刻只能出现一种。
状态修饰符(static final)抽象修饰符(abstract)
修饰类的有(默认修饰符,public,fianl, abstract)不能是(private protected static[可以修饰内部类]).(用得最多的是public)成员变量除了abstract都可以修饰。(用的最多的是private)(局部成员变量不能用private修饰) 构造方法只能是权限修饰符修饰。(用得最多的是public)所有的修饰符都可以修饰方法(用的最多的是public)
把类定义在其它类的内部,这个类就称为内部类。
内部类可以直接访问外部类的成员,包括私有。外部类要访问内部类的成员,必须创建对象(内部类对象)
内部类的位置:成员位置:在成员位置定义的类,称为成员内部类。局部位置(就是在方法里面):在局部位置定义的类,称为局部内部类。
如何直接访问内部类成员(外部类名.内部类名 对象名=外部类对象.内部类对象)对象是new xx();
成员内部类被静态修饰后的访问方式是:外部类名.内部类名 对象名=new 外部类名.内部类名();
成员内部类的修饰符:private 为了保证数据的安全性 static:为了方便 访问数据(注意:静态内部类访问的外部类数据必须是静态)
注意:内部类和外部类没有继承关系。可以通过外部类名限定this对象。(xxx.this).
局部内部类A;可以直接访问外部类的成员B;在局部位置,可以创建内部类对象,通过对象调用内部类的方法,来使用局部内部类功能。------》待续
JAVA 笔记(五)
标签:
原文地址:http://www.cnblogs.com/yc74/p/5358165.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!