二维数组[][]
格式1 :int[][]arr=mew int[3][2]
定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0],arr[1],arr[2]
给第一个一维数组1角标位赋值为78写法是:arr[0][1]=78
格式2 : int[][]arr=mew int[3][]
二维数组中有3个一维数
每一个一维数组都是默认初始化值null
可以对这个三个一维数组分别进行初始化
arr[0] = new int[3]
arr[1] = new int[1]
arr[2] = new int[2]
System.out.println(arr)直接打印二维数组
System.out.println(arr[0])直接打印数组中的角标0的一维数组
System.out.println(arr[0][0])直接打印数组中的角标0的一维数组中角标位0的元素
构造函数:构建创造对象时调用的函数
特点
1函数名与类名相同
2不用定义返回值类型
3没有具体的返回值
作用:
给对象进行初始化
构建对象都必须要通过构造函数初始化
注意:
1默认构造函数的特点
2多个构造函数时以重载的形式存在的
定义一个Person类的构造函数
构造函数,而且是空参数的
一个类中如果没有定义过构造函数, 那么该类中会有一个默认的空参数构造函数
如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了
一般函数和构造函数什么区别呢?
构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化.
一般函数:对象创建后,需要函数功能时才调用
构造函数:对创建时,会调用只调用一次
一般函数:对创建后,可以被调用多次
什么时候定义构造函数呢?
在描述事物时,该事物已存在一些内容,这些内容都定义在构造函数中
this关键字
特点:this代表其所在函数所属对象的引用.
换言之:this代本类对象的引用
什么时候使用this关键字呢?
当在函数内需要用到调用该函数的对象时,就用this
当成员变量和局部变量重名,可以用关键字this来区分
this:代表对象. 代表当前对象.
this就是所在函数所属对象的引用(哪个对象调用了this所在的函数,this就代表哪个对象)
this也可以用于在构建函数中调用其他构造函数
注意:只能定义在构造函数的第一行
static(静态)关键字
用于修饰成员(成员变量和成员函数)
被修饰后的成员具备一下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
static的特点:
1,static是一个修饰符,用于修饰成员
2,static修饰的成员被所有的对象共享
3,static优先于对象存在,因为statistic得成员随着类的加载就已经存在了
4,static修饰的成员多了一种调用方式,就可以直接被类名所调用.类名,静态成员
5,static修饰的数据是共享数据,对象的存储的是特有数据
成员变量和静态变量的区别?
1,两个变量的生命周期
成员变量随着对象的创建而存在,随着对象的被回收而释放
静态变量随着类的加载而存在,随着类的消失而消失
2,调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,还可以被类名调用
3,别名不同
成员变量也称为实例变量
静态变量也称为类变量
4,数据存储位置不同
成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据
静态变量数据存储在方法区(共享数据区)的静态去,所以也叫对象的共享数据
静态使用的注意事项:
1,静态方法只能访问静态成员(非静态既可以访问静态,有可以访问非静态)
2,静态方法中不可以使用this或者super关键字
3,主函数是静态的
主函数特殊之处:
1,格式是固定的
2,被jvm所识别和调用
public:因为权限必须是最大的
static:不需要对象的, 直接用主函数所属类名调用即可
void:主函数没有具体的返回值
main:函数名,不是关键字,只是一个jvm识别的固定的名字
Sting[] args:这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型
静态什么时候用?
1静态变量.
当分析对象中所具备的成员变量的值都是相同的
这时这个成员就可以被静态修饰
主要数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的
如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中,定义成静态的
2静态函数.
函数是否用静态修饰,就参考一点,就是该函数功能是否有访问到对象的特有数据
简单点说,从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的
如果不需要,就可以将该功能定义成静态的 .当然,也可以定义成非静态,但是非静态需要被对象调用,
而仅创建对象调用非静态的 没有访问特有数据的方法,该对象的创意是没有意义
静态代码块:
随着类的加载而执行,而且只执行一次
作用:
用于给类进行初始化
网友评论