复习:
声明 数组: 数据类型 [] 变量 = new 数据类型 [length] 可以换行写
数据类型 变量[]={value,value,......... }; 只能这样写一行 不能分行写。
变量[index]
数组的属性: length; 数组是比较特殊的对象, 只有一个属性就是length ;
数组的数组:
数据类型[] [] [] 变量 ;
类和对象:
面向对象: encapsulation, inheritance,polymorphism
opp 面向对象;
元数据: 不能再分割的一个整体,
定义一个类:
public class Student
{
String name;
int age;
String gedenr ;
String name ;
}
只有在实例化的时候 才是真正创建 分配了内存。
}
成员变量 的数据类型 怎么确定:根据生活中的实际情况表示;
修饰符:
访问修饰符: public protected default priavte
其他 : static fianl abstract
上面和下面的 可以互相结合 ,但是单纯的不一定可以相互结合。
return_type (返回值类型) : 位置不能随便更改,位置是规定的。
void : 不需要return ; 调用这个方法的时候,没有返回值,不能有变量接收。
任意的数据类型: 必须return 数据类型; 可以有变量接收的;
数据封装 隐藏: 成员变量 都加上 修饰符 private ; 就不能再 对象.属性;
this 调用的是当前对象;
成员变量 叫做: 属性 field
方法 称为: property
静态块,静态块的特点是在类加载的时候就执行,先说一下类加载,一个程序要想运行,首先要把代码加载到内存中对吧?然后才能去和CPU交流,这是冯诺依曼计算机规定的。Java也是一样,Java的.class字节码文件要想执行,首先也要加载到内存,由类加载器把字节码文件的代码加载到内存中,这一步就叫类加载,这是首先要进行的
创建对象的时候 : ( 类加载 ) 分配内存 默认初始化 显示初始化 调用构造器 ,引用返回
当创建Test类的一个对象的时候,比如new Test()
,是这样,首先是类加载,然后才能new对象,静态块在类加载的时候就执行了,这就说明静态块在new对象之前就会执行,而且一个类在第一次被使用的时候会被加载,然后在整个应用程序的生命周期当中不会再次被加载了,就加载这一次,所以这就说明,静态块就执行一次,不会执行第二遍!
第二次 new 对象的时候, 是不会在进行类加载;