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,静态函数
函数是否用静态修饰,就参考一点,就是该函数功能是否有访问到对象中的特有数据。
简单点说,从源代码来看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的
如果不需要就可以将该功能定义成静态的。
- Java_02
- JAVA_02 线程
- js 实现拖拽
- 龙珠燃向, 可以放下了
- 玲珑学院OJ 1014 - Absolute Defeat(智商暴力题)
- hdu-5894-hannnnah_j’s Biological Test(Lucas定理+乘法逆+组合数)
- Android项目快速编译之Freeline-Android的配置与集成
- Java_02
- extjs初学者教程
- Win10升级到 1607 找不到便笺的解决方法
- 一些面试问题总结
- 产品经理---- idea good idea
- 运营汇编2 两个文件如何去重
- Servlet~Listener详解
- NFA 有限自动机原理
- CF 518 D. Ilya and Escalator 概率dp