构造方法:
给成员变量进行初始化
初始化:分配内存空间,并且赋值
定义格式:
public 类名() {
asdfasdf
return;
}
1、类名和方法名相同
2、返回值类型,没有,连void也没有
3、默认有return语句
构造方法的重载:
和普通方法的重载一样:
在同一个类中,方法名相同,参数列表不同,与返回值类型无关
注意事项:
1、如果你没有显式的定义任何的构造方法,系统默认给你提供一个空参的构造方法;
2、如果你定义了任意一个构造方法,无论是有参还是无参,系统将不再提供任何的构造方法;
建议永远手动定义无参的构造方法。
构造方法和set方法的区别:
1、构造方法是在创建对象的时候给成员变量赋值;
2、set方法可以在对象的整个生命周期,进行赋值;
创建对象的过程:
1、加载你的自定义类;
2、在栈内存中声明一个自定义类的引用;
3、在堆内存中开辟空间,创建对象
4、默认初始化
5、显示初始化
6、构造方法进栈执行
7、对象的地址赋值给栈中的引用
static关键字
如何定义静态的成员变量
修饰符 数据类型 变量名
private static int age;
静态和非静态有什么区别:
1、内存上,静态变量是在方法区的静态区
非静态变量是在堆内存中
2、非静态变量,每个对象都有自己特有的值
静态变量,被所有对象所共享
特点:
1、随着类的加载而加载
2、优先于对象而存在
3、被所有该类对象所共享
Person p1 = new Person()
Person p2 = new Person()
p1.country = "riben";
p2.country = "zhongguo";
Person.country = "taiguo";//taiguo 覆盖了前面的两个值
4、可以通过类名来调用
private static int age;
private String name;
public static void print(){
test();
name = "zhangsan";
}
public void test() {
age =10;
}
static关键字注意事项:
1、静态方法中不能有this关键字
2、静态方法只能访问静态,
非静态方法既可以访问静态,也可以访问非静态
静态变量和非静态变量的区别:
1、所属不同
静态变量属于类
非静态变量属于对象
2、内存中的位置不同
静态变量在方法区的静态区
非静态变量在堆内存中
3、内存中出现的时间不同
静态变量随着类的加载而加载,随着类的消失而消失
非静态变量,随着对象的创建而存在,随着对象的消失而消失
4、调用不同
静态变量可以通过类名调用,也可以通过对象名调用,推荐用类名调用
非静态变量只能通过对象名调用
工具类的制作:
1、如果你某一个方法不需要访问非静态的成员变量,那你就定义成静态的方法;
2、如果所有的方法都是静态的,私有化其构造方法。
说明书的制作:
1、文档注释的写法:
/**
@author Mr.Lee
@version 1.0
@param
@return
*/
2、文档说明书制作:
javadoc -d 目录名 -author -version abc.java
api的使用:
点显示,点索引,在搜索框中输入你要找的类
获取1-100之间的随机数:
1、通过Math.random()
2、乘法,强转,加法
|
|