javaSe基础学习总结10

字符串String 的常量池
位置:方法区
作用:在常量池中缓存内容相同的字符串对象——节约内存

字符串String()
功能:返回字符串在常量池中内容一致的字符串对象
a)在堆里b)在常量池中
字符串对象的创建
1)方法1:0到多个字符
2)方法2:new 对象
String()
new String()
抽象类
概念:也是类,多了可以定义抽象方法
抽象方法:空有功能,不能实现
作用:不知道其中的一些功能,模糊定义为抽象方法
语法:
abstract class 类名{
//0到多个成员变量,静态变量,构造器,成员方法,静态方法…
//0到多个抽象方法(特殊的成员方法)}
定义抽象方法(特殊的成员方法(有功能定义,没有功能代码))的语法:
[访问修饰符] abstract 返回值类型 方法名(参数);

注意点
1)抽象类不能创建对象
2)抽象类应该必须有子类型
a)普通类:具体做事情的类: 必须要实现(重写)抽象类里所有的抽象方法
b)抽象类:继续规范自己的子类型:可选实现(重写)抽象类里所有的抽象方法
3)抽象类不能实例化(及时没有抽象方法),需要子类实例化
一定存在子类,不然抽象类无意义
4)、抽象类不一定有抽象方法,但是有抽象方法一定是抽象类,没有抽象方法的抽象类,也不能实例化。
5)、abstract不能和final一起使用,矛盾了
6)、abstract不能和static一起使用,抽象功能针对成员方法(面向对象)

超类型:定义的时候抽象类
优点:
a)超类型只是规范子类型-不应该创建对象-》抽象类可以完成
b)超类型有规范子类型的功能(不知道怎么实现的功能)-希望子类型必须要重写-》抽象类可以完成
1、接口
接口:就是描述了一套抽象功能的集合,就是能完成的事情,但是不做实现!!!
2、抽象类接口对比
抽象类:部分实现+部分抽象
接口: 全部抽象(公共抽象方法、公共静态常量数据)
注意!接口:只是描述成员功能,不描述成员数据。
3、超类型定义
抽象类: 子类是什么(抽象类),有数据也有功能,有抽象有实现,子类只能继承一个类
接口:子类能做什么,有什么功能(接口),只有抽象功能,子类可以实现多个接口
定义接口语法:
[public] interface 接口名{//0到多个公共的抽象的功能
//0到多个公共的静态的常量}
公共的抽象的功能的语法:
[public abstract] 返回值类型 方法名(参数列表);
注意点:public abstract可以不写,不写默认加上
公共的静态的常量的语法:
[public static final] 数据类型 常量名[=值],…;
注意点:public static final可以不写,不写默认加上

类型之间的关系
被继承或实现的类或接口–》超类型
继承或实现的类或接口–》子类型

超类型里定义的资源(数据和功能)子类型可以直接获取到
a)类与类-》【单】继承
class 子类 [ extends 父类]{}
b)类与接口-》【多】实现
class 子类 [extends 父类][implements 父接口1,父接口2…]{}
c)接口与接口-》【多】继承
interface 子接口 [extends 父接口1,父接口2…]{}

*有了接口之后超类型和子类型的确定
超类型:继承或实现链上面的类型
子类型:继承或实现链下面的类型

内部类分类:
局部内部类:位置在方法或块中
成员内部类:位置在类中,没有static
静态内部类:位置在类中,加static

局部内部类
–>有名字的
位置:方法中
语法:
class 类名{}

–>没有名字的(匿名内部类)-
做的事情
1)定义了一个没有名字的类,继承一个类或实现一个接口
2)创建出匿名类的对象,并返回对象地址
语法:
new 继承的类或实现的接口名(){//匿名类的-类体-成员变量,方法…//重写-超类型的-抽象方法};

lamda表达式-》实现了和匿名内部类类似事情
需要:jdk1.8以后才支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值