java 基础对象_java基础-对象

fdd027b92889bc06337ad74319174f01.png

女神镇楼

1、对象的创建:java中使用new操作符调用构造方法创建对象

Test test = newTest();

Test test= new Test("a");

参数说明:

363fedf01ef0bb77132d21211de360ed.png

test对象创建出来时,就是一个对象的引用,这个引用在内存中为对象分配了储存空间,可以在构造方法中初始化成员变量,在创建对象时,自动调用构造方法,在java中,初始化与创建是绑定在一起的。

c1d16f54a1c262f6148f194c158d3ffe.png

创建对象实例代码:

public classCreateObject {publicCreateObject(){

System.out.println("'创建对象");

}public static voidmain(String[] args) {newCreateObject();

}

}

2、访问对象的属性和行为

使用new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为,对象的属性和行为在类中是通过类成员的变量和成员方法的形式来表示的,所以对象获取类成员时,也相应的获取了对象的属性和行为。

代码示例--对象如何调用类成员:

public classTransferProperty {int i = 47; //定义成员变量

public void call(){ //定义成员方法

System.out.println("调用call方法");for(i = 0 ; i < 3 ; i++){

System.out.println(i+" ");if(i==2){

System.out.println("\r");

}

}

}/*** 定义构造方法*/

publicTransferProperty(){}public static voidmain(String[] args) {

TransferProperty t1= new TransferProperty(); //创建一个对象

TransferProperty t2 = new TransferProperty();//创建另一个对象

t2.i= 60; //将类成员变量赋值为 60//使用第一个对象调用类成员变量

System.out.println("第一个实例对象调用变量 i 的结果:" +t1.i);

t1.call();//使用第一个对象调用类成员变量//使用第二个对象调用类成员变量

System.out.println("第2个实例对象调用变量 i 的结果:" +t2.i);

t2.call();//使用第一个对象调用类成员变量

}

}

运行结果:

1a0cdfa389462e2331e951375402e6ca.png

代码示例---对象调用静态成员变量:

public classAccessProperty {static int i = 47;public voidcall(){

System.out.println("调用call()方法");for(i = 0; i < 3 ;i ++){

System.out.println(i+" ");if(i == 2){

System.out.println("\n");

}

}

}/*** 定义构造方法*/

publicAccessProperty(){}public static voidmain(String[] args) {

AccessProperty t1= new AccessProperty(); //创建一个对象

AccessProperty t2 = new AccessProperty();//创建另一个对象

t2.i= 60; //将类成员变量赋值为 60//使用第一个对象调用类成员变量

System.out.println("第一个实例对象调用变量 i 的结果:" +t1.i);

t1.call();//使用第一个对象调用类成员变量//使用第二个对象调用类成员变量

System.out.println("第2个实例对象调用变量 i 的结果:" +t2.i);

t2.call();//使用第一个对象调用类成员变量

}

}

运行结果:

f25f242ffe57d80e78e33aa75aa7ed77.png

20e1a0c381f464336be9cf9675dfe15f.png

3、对象的比较 ===java中有两种对象比较的方式:“==”运算符和equals()方法

实例代码:

public classCompare {public static voidmain(String[] args) {

String c1= new String("abc");

String c2= new String("abc");

String c3= c1; //将c1的引用赋值c3//使用比较运算符比较c2和c3

System.out.println("c2==c3 的运算结果为:"+(c2==c3));//使用equals方法比较c2与c3

System.out.println("c2.equals(c3)的运算结果为:"+(c2.equals(c3)));

}

}

运行结果:

bff0b90ca6d7bafead16df6f12682bb7.png

运行结果分析:

“==”运算符和equals()比较的内容是不同的,equals()方法是String类中的方法,用来比较两个对象引用所指的内容是否相等;而“==”运算符比较的是两个对象引用的地址是否相等。由于c1,c2是两个不同的对象引用,两者在内存中的位置不同,而“String c3 = c1;”语句中将c1的引用复制给c3,所以c1和c3的两个对象引用是相等的。

对象c1,c2,c3在内存中的布局如图

85db28323b90b000895e4986019b619b.png

4、对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址就会被回收,被java虚拟机视为垃圾的两种对象类型:

(1)对象引用超过其作用范围

(2)将对象赋值为null

1586a7a009f34bbf6e842345560a49b6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值