object 类 “equals” 方法与 “ == " 之间的差别

来源:互联网 发布:安卓麻将游戏源码 编辑:程序博客网 时间:2024/05/21 18:46


1.     object 类 “equals” 方法与  “ == "  之间的差别

public static void main(String[] args) {
// TODO Auto-generated method stub
Object obj1=new Object();
Object obj2=new Object();
if(obj1==obj2){//==对象比较是比较引用地址即对象所在内存地址是否相同
System.out.println("两者内存地址相等");
}else{
System.out.println("两者内存地址不等");
}
int a=3;
int b=2;

if(a==b){ //==基本数据比较是比较两个值是否相等
System.out.println("两者值相等");
}else{
System.out.println("两者值不等");
}

if(obj1.equals(obj2)){//equals是比较两个对象的是否相同,只能用于比较对象引用
System.out.println("obj1与obj2是同一个对象");
}else{
System.out.println("obj1与obj2不是同一个对象");
}
}

2.基本数据变量,引用变量和对象存储位置的差异

  基本数据类型变量和引用变量是存储在栈内


对象存储在堆内


引用变量存储单元存储值为该对象在堆中的值


构造方法 this super 的用法


public class Bird extends Animal {
public Bird(){//构造bird的方法
super("我");//super调用父类的构造方法并给name赋值
this.name="小黄";//表示当前类,通过this.可以调用当前类所有成员变量和成员方法
super.say();//super表示调用父类的say()方法

this.say();//this指定本类的say()方法
//System.out.println("小小鸟");
}
public void say(){
// Bird bird=new Bird();
// bird.name="你";
System.out.println(name+"笨鸟先飞");
}



0 0
原创粉丝点击