类
类是对现实事物的抽象。类中的数据成员,便是对现实事物中的属性进行数据抽象而得到。而类中的方法便是对类似事物的行为抽象。
类是一种引用的数据类型。所以一般来说,对类需要创建一个实例,并将其应用。下面是具体的操作方式,也是比较正确的方式
1 | Cat cat = new Cat(); |
其中 Cat cat 是引用一个对象, 而 new Cat() 则是获取一个实例,实例的对象名就是之前的cat. 类似电视机(实例)和遥控器(对象),缺一则没有什么意义;
接下来再需要使用cat中的方法时候,可是使用类似cat.eat();方式进行引用,类似之前的很多中方式。
注意 可以为每一个类都定义main方法,方便测试。其中即使不同类定义了多个主方法,java系统会选择指定的类中的main方法进行解释运行
对象传递给方法,改变仅仅是参数的引用值,而不是实际的参数值.
静态变量 && 静态方法
简单解释一下,无论是静态方法,还是静态变量,关键点都是前面有static 修饰符
静态变量
1 | class Test{ |
注意, 静态变量属于整个类,所以在计算机中 这个 i 只有一份存储空间,无论声明多少次同名的i. 系统在初始化前,最先对系统中所有的静态变量进行初始化.
静态方法
静态方法与静态变量性质类似,同样只拥有一份存储空间,所以可以直接通过类似Test.average 方式使用静态方法。
静态方法没有相应的this介绍
初始化
java 默认每个数据成员有初值,但是声明时必须赋值。
所以初始化的最简单方式就是直接赋值
第二种方式便是构造方法
构造方法:
构造方法的名称,与类名完全一致(小写方法名在这里不必用上),用于初始化类的对象,可以使用this关键字初始化。
当然,构造方法也可以重载。
如果之前就设置有构造方法,系统就不会生成默认的构造方法了。
默认构造方法就是无参构造方法。
无论类中的数据成员是否赋予于初值,那么最初的时候都是初始化为默认值。
静态变量初始化
如果需要对类的里面的内容进行初始化,那么第一步应该就是按编码先后顺序对静态变量分别初始化,第二步就是按照编码先后顺序对实例变量进行初始化,然后第三步就是对构造方法进行初始化。
初始化静态变量之后,系统执行过程中,静态变量便不会再初始化了。
因为静态变量属于系统,所以静态变量不应该放置在对象的构造方法内部。
初始化块
静态初始化块,
1 | static { |
类如如此。用于初始化静态变量,位于类的类体类体,不能再任何方法体内。
也存在实例初始化块