1.定义类
[修饰符] class 类名 extends 父类
{
// 0~N 个 Field 定义
// 0~N 个 方法定义
// 0~N 个 构造器定义
// 初始化块定义
}
当子类继承了父类之后,子类可以从父类那里获得Field 、方法
子类构造器,【总会】调用父类构造器【一次】。
A。没有super 调用,子类构造器默认调用父类无参数的构造器
B。有super 调用,子类构造器根据super 调用的参数列表去调用父类指定的构造器
初始化块的代码,在编译后,会被自动提取,并插入【构造器】的前面
2.使用类
A。静态Field 、静态方法,直接用类名调用即可
B。创建实例
C。通过实例来调用实例Field、实例方法。
类初始化
当程序第一次【主动】使用该类就会初始化该类。下面几种情况会初始化该类:
1. 访问了该类静态Field 或静态方法
2. 初始化了该类的子类——因为Java初始化一个类,永远先从最顶层父类(object)开始初始化。
3. 使用反射来 Class.forName(类名字符串)
4. 如果该类作为主类使用(有main方法,而且程序确实从该main方法开始执行)
5.使用该类来创建对象
典型的:使用类来声明变量,并不算主动使用该类,所以不会初始化该类
Java提供基本类型的包装类
Java 是面向对象的语言,在Java里面,一切都是对象
所有类,都是Object类的子类
但是,8个基本类型是例外 —— 它们是从 c 里面来的。8个基本类型不能当成对象使用。
于是Java为8个基本类型提供了相应的包装类:它们的值(本质)依然是8个基本类型,
只是它们被包装过了,因此可以被当成对象使用。
byte → Byte
short → Short
int → Integer
long → Long
float → Float
double → Double
char → Character
boolean → Boolean
从JDK 1.5 之后,基本类型的值,可以直接当成对象使用,
JDK 1.5 提供了“自动装箱(auto box)“
自动装箱提供的方便:基本类型的值,可以被自动当成它的包装类实例使用。
A。它可以自动当成对象使用
B。它可以作为对象传入方法
从JDK 1.5 开始,由于提供了自动装箱、自动拆箱
因此基本类型的值,可以自动被当成它的包装类实例(即对象)使用——因为有自动装箱
反过来,包装类的实例(对象)也可自动当成基本类型的值使用——因为自动拆箱
一句话:用包装类的实例更方便。
JDK 1.7 之后,所有的包装类增加一个新方法:
compare (x,y)的方法。(x=y返回0,x>y返回大于零的,x<y返回小于0的)
不可变类
创建该类的实例后,该实例的属性是不可改变的,Java提供的 8个包装类和java.lang.String都是不可变类,当创建实例后,其实例的属性不可改变。
以上
写在最后:
改了之前的个人简介~
【每天一首歌】【房间 - 刘瑞琦】
一个女生推荐的,觉得全给我推荐的是有关爱情的……“在这温暖的房间,我们都笑得很甜,在这温暖的房间,我于是慢慢发现,相聚其实就是一种缘,多值得纪念”。曲风不错,会让我有想跟着唱的冲动哈哈。爱情这个话题啊,大概真的是人类永恒的话题~大抵是多巴胺在作怪~但是躺在椅子上,却突然想到,【每天一首歌】其实是个坑,如果是只听歌还好,但是要把想法写出来,而且要是每天都写的话对于我来说是痛苦的吧。想到我看的小说经常会看到作者发出:今天实在没思路了,下回多补一章。我觉得,对于创作这种事,如果加个条条框框,变成了习惯性的任务,会很无聊吧。突然很佩服那些个作家的。学习去了。(写于20170811/ 14:12)
溜了~健身去了~