博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象
阅读量:5289 次
发布时间:2019-06-14

本文共 1470 字,大约阅读时间需要 4 分钟。

一、构造方法

1. 构造方法概述和作用
a. 给对象的数据(属性)进行初始化
2. 构造方法格式特点
a. 方法名与类名相同(大小也要与类名一致)
b. 没有返回值类型,连void都没有
c. 没有具体的返回值return;
3. 构造方法重载
a. 方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表
4. 构造方法注意事项
a. 如果我们没有给出构造方法,系统将自动提供一个无参的构造方法。
b. 如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
※ 注意:这个时候我们如果还想使用无参的构造方法,就必须自己定义,建议永远要自己给出无参的构造方法。

二、给成员变量赋值的两种方式的区别

1. 两种方式:
a. 使用有参构造方法赋值。eg:Person p1=new Person("张三",23);
b. 使用setXxx方法赋值。eg: p1.setName("张天翼");
2. 区别:
a. 构造方法:一般用来给对象中的属性进行初始化
b. setXxx()方法:修改属性的值。
※ 实际使用中,setXxx()的方式更灵活一点。
三、创建对象的步骤:
Student s=new Student();
a. Student.class加载进内存
b. 声明一个Student类型引用s
c. 在堆内存创建对象
d. 给对象中属性默认初始化值
e. 属性进行显示初始化
f. 构造方法进栈,对对象中的属性赋值,构造方法弹栈
g.将对象的地址赋值给s
.785817-20190221225606705-1019544100.png

四、static关键字

1. static关键字的特点
a. 随着类的加载而加载
b. 优先于对象存在
c. 被类的多有对象共享
i. eg:我们班级的学生共用一个班级号
ii. 什么时候使用static
1) 如果某成员变量是被所有对象共享的,那么它就应该被定义为静态的。
d. 可以通过类名调用
i. 其实它本身也可以通过对象调用
ii. 推荐使用类名调用
iii. 静态修饰的内容一般我们称其为:与类相关的,类成员
2. static的注意事项
a. 在静态方法中是没有this关键字的
i. 如何理解:
1) 静态是随着类的加载而加载,this是随着对象的创建二存在的。
2) 静态比对象先存在。
b. 费静态方法只能访问静态的成员变量和静态的成员方法:
i. 静态方法:
1) 成员变量:只能访问静态变量
2) 成员方法:只能访问静态成员方法
ii. 费静态方法:
1) 成员变量:可以是静态的,也可以是费静态的。
2) 成员方法:可以是静态的成员方法,也可以是费静态的成员方法。
iii. 简单记:
1) 静态只能访问静态。

五、静态变量和成员变量的区别:

1. 所属不同
a. 静态变量属于类,所以也称为类变量
b. 成员变量属于对象,所以也称为实例变量(对象变量)
2. 内存中位置不同
a. 静态变量存储于方法区的静态区
b. 成员变量存储于堆内存。
3. 内存出现的时间不同:
a. 静态变量随着类的加载而加载,随着类的消失而消失。
b. 成员变量随着对象的创建而存在,随着对象的消失而消失。
4. 调用不同:
a. 静态变量可以通过类名调用,也可以通过对象调用。
b. 成员变量只能通过对象名调用。

六、工具类中使用static

如果一个方法中所有方法都是静态的,那么就需要将该类的构造方法设置为私有的,禁止该类创建对象。

转载于:https://www.cnblogs.com/snail0404/p/10415880.html

你可能感兴趣的文章
netty研究【1】:编译源代码
查看>>
GTK接口定义和实现
查看>>
Hadoop生态系统介绍
查看>>
uva 11468 Substring
查看>>
SoapUI、Jmeter、Postman三种接口测试工具的比较分析
查看>>
Android平台实现与Apache Tomcat服务器数据交互(MySql数据库)
查看>>
Cout vs printf---缓存与引用,流处理顺序(转ithzhang,知乎郝译钧)
查看>>
排座椅(seat)
查看>>
XOR Queries
查看>>
MSIL学习------从HelloWorld开始
查看>>
bzoj千题计划138:bzoj1432: [ZJOI2009]Function
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
实现自己的脚本语言ngscript之四:代码生成
查看>>
在Android中使用FlatBuffers(上篇)
查看>>
.net 基础面试题二
查看>>
leetcode 347. Top K Frequent Elements
查看>>
nil、Nil、NULL和NSNull的理解
查看>>
app后端设计(12)--图片的处理
查看>>
FTP上传下载文件
查看>>