Java_02

来源:互联网 发布:教学过程最优化 编辑:程序博客网 时间:2024/06/16 01:50

构造函数

特点:

1,函数名和类名形同

2,不同定义返回值类型

3,没有具体的返回值

作用:
给对象进行初始化

注意:

1,默认构造函数的特点

2,多个构造函数是以重载的形式存在的

 

构造函数:

构建创造对象时调用的函数

作用:

可以给对象进行初始化

创建对象都必须要通过构造函数进行初始化

一个类中如果没用定义构造函数,那个该类中会有一个默认的空参数构造函数。

如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了。


构造函数和一般函数的区别:
1,构造函数:对象创建时就会调用与之对应的构造函数,对对象进行初始化

      一般函数:对象创建后,需要函数功能时才调用

2,构造函数:对象创建时,会调用只调用一次

      一般函数:对象创建之后,可以被调用多次


什么时候定义构造函数?
在描述事物时,该事物一存在就具备的一些内容,这些内容就都定义在构造函数中


构造函数可以调用其他函数,但是其他函数不能调用构造函数;

void Person()   Person() 前面的不是构造函数,后面的才是构造函数,构造函数没有返回值和函数类型

构造函数中可以使用return;但是构造函数中写return很少见


this关键字

1,特点:

this代表其所在函数所属对象的引用

换言之:this代本类对象的引用

什么时候使用this关键字呢?

当在函数内需要用到调用该函数的对象时,就用this


当成员变量和局部变量重名的时候,就可以用关键字this来区分

this:代表对象。代表哪个对象呢?当前对象。

   this就是所在函数所属对象的引用

   简单说,哪个对象调用了this所在的函数,this就代表了哪个对象

构造函数和构造函数之间如何访问:

一个类中成员想要被调用,就必须要有对象来调用

在构造函数中调用构造函数,this.Person(); 因为Person()还没有被初始化所以不能被调用的,所以只能写成this();这个样子

但是,要注意的是只能定义在构造函数的第一行,因为初始化动作要先执行

如果你要在本类中使用本类对象就要使用this


static关键字:
用于修饰成员(成员变量和成员函数)

被修饰的成员具备以下特点:

1,随着类的加载而加载

2,优先于对象的存在

3,被所有对象所共享

4,可以直接被类名调用

使用注意:

1,静态方法只能访问静态成员

2,静态方法中不可以写this,super关键字

3,主函数是静态的

 static修饰的数据是共享数据,对象中的存储的是特有数据

成员变量也就是实例变量

静态变量也就是类变量


成员变量和成员变量的区别:

1,两个变量的生命周期不一样

      成员变量随着对象的创建而创建,随着对象的释放而释放

      静态变量随着对象的加载而存在,随着类的消失而消失

2,调用方式不同

       成员变量只能被对象调用

静态变量可以被对象调用,还可以被类名调用

3,别名不同

      成员变量也称为实例变量

      静态变量也称为类变量

4,数据存储位置不同

      成员变量数据储存在堆内存的对象中,所以也叫对象的特有数据

      静态变量数据储存在方法区(的静态区),所以也叫对象的共享数据

public static void show()

static:

静态的使用的注意事项:

1,静态方法只能访问静态的成员(非静态既可以访问静态,也可以访问非静态)

2,静态方法中不可以定义this super关键字 

3,主函数是静态的     


主函数的特殊之处:

1,格式是固定的

2,被jvm所识别和调用

public:因为权限必须是最大的

static:不需要对象的

void:主函数没有具体的返回值

main:函数名,不是关键字,只是一个jvm识别的固定的名字

String[] args:这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型  


静态什么时候用?

1,静态变量

当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以被静态修饰

只要数据在对象中都是不同的,就是对象的特有数据,必须储存在对象中,是非静态的

如果是相同的数据,对象不需要做修改,只需要使用即可,不需要储存在对象中,定义成静态的变量。

2,静态函数

函数是否用静态修饰,就参考一点,就是该函数功能是否有访问到对象中的特有数据。

简单点说,从源代码来看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的

如果不需要就可以将该功能定义成静态的。

































0 0