当前位置: 移动技术网 > IT编程>开发语言>Java > 乐字节Java构造器(构造方法|构造函数)、方法与内存分析

乐字节Java构造器(构造方法|构造函数)、方法与内存分析

2019年07月19日  | 移动技术网IT编程  | 我要评论

西游记-火艳铁扇公主,宿迁加油站闹鬼,江浙林

一、 构造器(构造方法|构造函数)

在创建对象时(new),必会调用一个特殊的方法,这个方法是初始化对象信息的为new服务的。这个方法称为“构造器”

使用 new + 构造方法创建一个新的对象。

构造函数是定义在 java类中的一个用来初始化对象的函数。

构造函数与类同名且没有返回值。

 

例如: person类的构造函数:

public class person {
	int id;
	int age;
	person(int n, int i){
		id = n;
		age = i;
	}
}

创建对象时,使用构造函数初始化对象的成员变量

public class test {
	public static void main(string[] args) {
		person tom = new person(1, 18);
		person jeck = new person(2, 20);
	}
}

二、构造方法的特点:

1) 名称必须和类名一致,与类名相同

2) 没有返回类型|void

3) 构造器可以存在return,return有选择的跳出构造器

4) 不能随便调用,和new在一起使用,其他时候不能调用

5) 修饰符不能为 final abstract static

作用:

初始化对象信息,不是用于创建对象的

空构造:

没有参数的构造器、无参构造

1) 一个类中,如果没有显示|手动 加入 任意构造器 javac编译后 自动加入空构造

2) 一旦加入构造器, javac 不会加入空构造器

 

三、方法的重载

方法的重载是指一个类中可以定义有相同的方法名,但参数不同的多个方法。调用时,会根据不同的参数列表选择对应的方法。

四、构造方法的重载

与普通方法一样,构造方法也可以重载

例子如下:

五、 引用与内存分析

a:一个对象的内存图

b:二个对象的内存图

c:三个对象的内存图

内存分析

划分

引用的特点:

1) 同一时刻一个一引用只能指向一个对象

2) 一个对象可以被多个引用所指向,其中一个对其进行更改,该对象的其他引用也可见该变化

3) java一切为值传递,引用拷贝地址

约定俗成的命名规则

类名的首字母大写

变量名和方法名的首字母小写

运用驼峰标识

 

例子:

public class cat {
	string color; // 毛的颜色
	string name; // 名称
	public void chase(mice mice){
		mice.type = "jerry"; // 改变
		system.out.println(name + " 逮 " + mice.type);
	}
	public static void main(string[] args) {
		// 引用  与内存分析(运行期为--》数据的流向)
		cat cat = new cat();
		cat = new cat();	
// 引用发生变化,同一个时刻一个引用只能指向一个对象
		cat.color = "黑色";
		cat.name = "tom";
		mice mice = new mice();
		mice.type = "米奇";
		// 将二者联系起来  --》 依赖
		cat.chase(mice);	
// 传递时,值拷贝,拷贝地址,拷贝完成后   一个对象被多个引用所指向
		system.out.println(mice.type);  
// jerry 其中一个对其发生变化,该对象的其他引用也可减该变化
	}
}
class mice{
	string type;
}

定义如下类

public class birthdate {
	int day;
	int month;
	int year;
	public birthdate(int d, int m, int y){
		day = d;
		month = m;
		year = y;
	}
	void setday(int d){
		day = d;
	}
	void setmonth(int m){
		month = m;
	}
	void setyear(int y){
		year = y;
	}
	int getday(){
		return day;
	}
	int getmonth(){
		return month;
	}
	int getyear(){
		return year;
	}
	void display(){
		system.out.println(day + "-" + month + "-" + year);
	}
}

 

测试类:

public class test {
	public static void main(string[] args) {
		test test = new test();
		int date = 9;
		birthdate d1 = new birthdate(7,7,1970);
		birthdate d2 = new birthdate(1,1,2000);
             test.change1(date);
             test.change2(d1);
             test.change3(d2);
             system.out.println(date); 
             system.out.println(d1);
             system.out.println(d2);
	}
	void change1(int i){
		i = 1234;
	}
	void change2(birthdate b){
		b = new birthdate(22,2,2004);
	}
	void change3(birthdate b){
		b.setday(22);
	}
}

 

总结:

对象的创建和使用,必须使用new 关键字创建对象,使用对象引用.成员变量来引用对象的成员变量,使用对象引用.方法(参数列表)来调用对象的方法。

同一类的每个对象有不同的成员变量存储空间,同一类的每个对象共享该类的方法,

非静态方法是针对每个对象进行调用 。

 

乐字节原创,转载请注明出处。请继续关注乐字节

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网