java:构造方法,static,工具类、帮助文档,主方法解释,API

构造方法

构造方法:
构造器,Constructor
作用:
用于给成员变量赋值的一个方法。在创建对象的同时,就能给当前对象的成员变量赋值,等对象一创建完成,就已经有合理的属性值了。
构造方法定义格式:
1、构造方法的方法名称,必须和类名一模一样
2、构造方法没有返回值类型,连void也没有
3、所以不能有具体的返回内容
构造方法调用的说明:
1、构造方法不需要你手动调用,在创建对象的时候,由jvm自动调用
2、对象本身不能调用构造方法
3、构造方法只会在创建对象的时候,调用一次

构造方法的注意事项

1、构造方法可以是有参数的,也可以是没有参数的
空参的构造方法,无法接受外界传入的数据,只能给成员变量赋固定的值
有参数的构造方法,可以接受外界传入的数据,可以根据外界传入的数据的不同,给成员变量赋不同的值
2、如果你没有手动的提供任何的构造方法,系统默认提供一个空参构造,空实现
3、如果你手动提供了任何一个构造方法,系统将不再提供任何构造方法
4、一般在类型中,既需要空参构造,也需要有参构造,需要都手动定义出来,形成了构造方法的重载
5、构造方法的重载:
方法重载:在同一个类中,方法名相同,参数列表不同,与返回值类型无关
构造方法重载;在同一个类中,方法名和类名一模一样,参数列表不同(空参和有参),构造方法没有返回值类型,所以肯定也和返回值类型无关

构造方法和set方法的区别

1、构造方法和set方法都可以给成员变量赋值,都是可以让外界简洁的访问私有的成员变量。
2、不同点:
1、构造方法在对象创建的时候调用,set方法是在对象创建完成之后调用
2、构造方法由虚拟机自动调用,set方法是由对象调用
3、构造方法只能调用一次,用于给成员变量赋初始化值,set方法可以调用多次,用于 给成员变量修改值
3、使用场景的比较:
1、如果需要在创建对象的时候,给对象赋一个初始化值,使用构造方法
2、如果需要在后期频繁修改成员变量,就使用set方法

创建对象的内存解释

1、创建对象的过程中,会给成员变量进行3次初始化的赋值,分别是:
默认初始化:给成员变量赋默认的初始化值
显式初始化:在定义成员变量的时候,就给成员变量赋相同的初始化值
构造方法初始化:在调用构造方法的时候,根据构造方法的实际参数的值,给成员变量赋值

显式初始化在后,默认初始化在前
显式初始化在前,构造方法初始化在后

2、创建对象的过程总结:
1、将要创建的对象所属的类,加载到方法区
2、在栈内存中,创建该类型的引用
3、在堆内存中,开辟一块存储空间,用于存储该对象的数据
4、默认初始化赋值
5、显式初始化赋值
6、构造方法初始化赋值
7、将对象的地址,赋值给栈内存中的引用

Static

没有静态:如果某个类型的所有对象,都具有一个相同的属性值,那么这个属性值就没有必要在所有对象中,都存储一份,并且有坏处:浪费内存空间;维护难度大,一旦需要修改,就得修改所有的对象。
举例:
class Actor {
String name;
String country;

public void act() {
	System.out.println(name + "..." + country);
}

}
有静态的状态:如果某个类型的所有对象,都具有一个相同的属性值,那么就在这个属性的定义上,加一个static静态关键字。让该变量存储在方法区字节码的静态区中,避免了所有对象都存储相同数据的问题,节省了内存空间,将来维护容易(只需要修改一次)

静态变量的特点

静态的解释:static关键字
静态、静止的。静态变量不会随着对象的变化而变化
加载时机:
随着类的加载而加载。
静态变量随着类的加载进方法区,就直接在静态区给开辟了存储静态变量的内存空间
静态变量优先于对象而存在
静态变量被所有该类对象所共享
代码层面:
可以使用类名直接调用,不需要使用对象名称。在不创建对象的前提下,仍然可以使用这个静态变量。建议使用类名来访问。(说是建议,其实就是规定)

静态访问的注意事项

静态方法:
在方法声明上,加上了static关键字的方法,就是静态方法
静态方法不能访问非静态的变量
原因:静态方法可以在没有创建对象的时候调用;非静态的变量只有在对象创建之后才存在。如果静态方法可以访问非静态的变量,那么就相当于在对象创建之前,就访问了对象创建之后的数据。明显不合理。
静态方法不能访问非静态的方法
原因:静态方法可以在没有创建对象的时候调用;非静态的方法可以访问非静态的变量。如果静态方法可以访问非静态的方法,就相当于静态方法间接的访问了非静态的变量,和第2点矛盾。
静态方法中不能存在this关键字
原因:this关键字表示本类当前对象。静态方法可以在对象创建之前调用。如果静态方法可以访问this关键字,相当于在创建对象之前,就使用了对象本身。矛盾。
静态不能访问非静态

静态变量和非静态变量的区别

1、概念上,所属不同:
非静态变量属于对象
静态变量属于类,也叫作类变量
2、内存空间不同,存储位置不同
非静态变量属于对象,所以存储在堆内存中
静态变量属于类,存储在方法区的静态区中
3、内存时间不同,生命周期不同
非静态变量属于对象,所以生命周期和对象相同,随着对象的创建而存在,随着对象的消失而消失
静态变量属于类,所以生命周期和类相同,随着类的加载而存在,随着类的消失(内存管理)而消失
4、访问方式不同
非静态变量只能使用对象名访问
静态变量既可以使用对象访问,也可以通过类名访问:
类名.静态变量名
类名.静态方法名()

主方法解释

在这里插入图片描述

工具类、帮助文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

帮助文档的使用:

1、帮助文档:
将来很少生成帮助文档,但是频繁使用别人制作好的帮助文档
2、使用:在线文档、离线文档
1、在线文档:百度api->找到jdk中文版
根据要使用的类型,推断在哪个包中
到这个包中寻找你要使用的类型
观察包、是否是抽象类、工具类,阅读信息
根据自己需要使用的功能,查找需要的方法
找到方法之后,阅读方法介绍,进行测试
2、离线文档:直接打开->点击显示----索引----输入要查询的类型
离线的帮助文档:
1、打开文档
2、点击显示
3、点击索引
4、搜索需要的类型
5、阅读说明、说明中的示例代码
6、查看构造方法,判断是否可以创建对象
7、查看每个方法的返回值类型,判断是否是自己需要的方法
8、查看每个方法是否静态,判断是否可以使用类名直接调用
9、方法名称
10、方法的详细解释和参数列表

API:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值