java中关于创建对象,初始化和给类赋值的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中关于创建对象,初始化和给类赋值的问题。相关的知识,希望对你有一定的参考价值。

class A

String a="class A";

class B extends A

String b="class B";
String a="class c";

class exam

public static void main(String args[])

A a1,a2=new A();
B b1,b2=new B();

System.out.println(a1.a);
System.out.println(b1.b);


这里它说a1.a和b1.b未被初始化。a1不已经是新建A类的对象了么,a1.a就调用A里的a就好了么,为啥还要初始化。。
还有
class A

String a="class A";

class B extends A

String b="class B";
String a="class c";

class exam

public static void main(String args[])

A a1,a2=new A();
B b1,b2=new B();
a1=b2;
b1=(B)a1;
System.out.println(a1.a);
System.out.println(b1.b);


就对了。。这b2不也是新建的对象么,咋就能给别人赋值,按理他自己也还没初始化了。。

下面主要是说明一下在Java语言中,创建对象和对象赋值的问题。

1、创建对象必定会涉及到对象被初始化的问题,因为在Java语言中一个对象如果不被初始化就使用的话,是会抛出一个空指针异常,如下

String x;
x = null;
System.out.println(x.toUpperCase());

Exception in thread "main" java.lang.NullPointerException

2、如何初始化,使用new关键字初始化

String o1 = new String("zhangsan");

3、对象之间的赋值

String o2 = "zhangsan";

"zhangsan"是一个匿名的字符串对象,又被称为字符串常量,将一个字符串常量对象赋值给一个申明类的字符串对象,o2在栈中存放了“zhangsan”的引用地址,所以最有效的赋值是

String o2 = "zhangsan";//系统开销小
String o1 = new String("zhangsan");//系统开销大

参考技术A A a1,a2=new A();
B b1,b2=new B();
这里的只有a2和b2已经初始化,但是a1和b1没有初始化

A a1,a2=new A();
B b1,b2=new B();
a1=b2;
b1=(B)a1;
这里是把b2初始化,然后赋值给a1,也就是a1和b2持有相同的对象,然后再把a1赋值给b1,相当于a1,a2,b1,b2都初始化了本回答被提问者采纳

以上是关于java中关于创建对象,初始化和给类赋值的问题。的主要内容,如果未能解决你的问题,请参考以下文章

java中关于对象初始化的问题

如何创建字典和给字典赋值

JVM学习--局部变量表

python中关于赋值浅拷贝与深拷贝的问题

js关闭当前页面和给子页面的对象赋值

数据结构中关于树的一切(java版)