一、类的结构
- 类(class):具有相似或相同的属性、行为等一类事物。比如:人类、鸟类等
- 构成:一类对象的代码描述(对象的生成指令,对象的调度指令)
- 对象(instance):具体的事物,某个个体,比如:希特勒、杰克逊、乌鸦等
- 构成:对象的属性数据+方法指令
1.属性
-
变量
-
常量(final)
- final:最终形态的,不可改变
- 初始化赋值之后,不能再调用赋值
- 属于对象,每个对象都具有自己的一份常量
-
静态属性(static)
- static:静态的,唯一
- 只属于类,且只有一份,不属于对象
- 通常要求使用类名直接调用
2.方法
- final方法
- 不能被重写
- static方法
- 静态的,唯一
- 只属于类,且只有一份,不属于对象
- 通常要求使用类名直接调用
- 方法重载
- 同一个类中可以写多个同名的方法,前提要求是参数不一致
- 返回值可以修改,只要参数不一致就可以看作两个完全不同的方法
- 具体调用哪个方法就看调用时给的参数是什么类型,顺序
3.代码块
- 代码块
- 初始化一些代码,创建对象时执行
- static代码块
- 只调用一次,在类加载的时候执行
4.构造方法
- 每个类都有构造方法,不管你写没写
- 每个类都具备一个隐式的空参数构造方法
- new 类名();–只能在创建对象的时候调用
- 构造:通过外部传入的参数构造对象-处于初始化阶段
- 给属性常量,变量赋值初始化
5.主函数
public static void main(String[] args){}
6.内部类
定义:Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B就是外部类
public class User {
//内部类
class Inneruser{
}
//变量
int age=1;
//常量
final String name="haowei1";
//静态变量
static int weight=1;
//静态常量
static final int ID=1111;
//代码块
{
age=2;
System.out.println("代码块");
}
//静态代码块
static {
weight = 2;
System.out.println("静态代码块");
}
//构造方法
User(){
weight=3;
age=3;
System.out.println("构造方法");
}
//成员方法
void getAge(){
System.out.println("成员方法Age: "+this.age);
}
//静态方法
static void getWeight(){
weight = 4;
System.out.println("静态方法Weight: "+User.weight);
}
//final方法
final void getName(){
System.out.println("final方法");
}
//主函数
public static void main(String[] args) {
User user1 = new User();
User.getWeight();
user1.getAge();
}
}
静态代码块
代码块
构造方法
静态方法Weight: 4
成员方法Age: 3
加载顺序:
父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造函数,子类非静态变量,子类非静态代码块,子类构造函数。