对象的创建

Java里面的实例对象new了之后是啥意思了?

Circlec1=newCircle();Circlec2=newCircle();是不是就是说创建一个实例对象,然后把创建的对象赋给c1,c2?这样理解有问题吗?

 

1.有一生产 circle 的工厂,现在我要生产一个circle,那么我就 new Circle(),这样一个轮子就出来了,而且为了区分不同的轮子,我把这个轮子起个名字叫 c1。现在我又要生产一个轮子,我就又 new Circle(),起名叫 c2。到目前为止你就实实在在的有两个轮子,这两个轮子是不相干的。但有相同的原型 Cricle,也就是一个模子刻出来的。现在有两个轮子了,我可以分别对两个轮子进行不同的操作,而且相符不影响。这两个轮子是两个对象,存储在在内存的不同空间。
这个 Circle c1 = new Circle(); 到底是什么意思呢。是这样的。我们把这句话分为两个部分。一个是 等于号 右边的,这里是生产了一个对象。Circle c1 的意思是什么呢?他是在告诉 jdk c1 是 Circle 类型的,你要按照 Circle 类型的定义对 c1 进行操作。
比如我定义 String s = "123"; 这里的String 告诉系统 s的值 占了多少字节,怎么存储,怎么取出来,能进行什么样的操作等。就是一个 标示 的作用。

 

2.没有问题

new Circle(); 在Java里,表示在内存中分配一个空间,这个空间存储的是一个Circle对象,即实例

Circle c1=new Circle(); 表示把上面Circle对象的内存地址 赋值 给 c1 对象(其实c1保存的是一个引用,这个引用指向一个Circle对象实例)
 

3.可以这样理解,Circle是一个圆,而你实例化后,也就是c1和c2,你可以把它们看做一个篮球或是足球,就像比如你要做房子,你先要有图纸吧,这图纸就是Circle,然后你得有工人做房子吧,工人呢就是new关键字,房子呢就是c1或c2

具体就是,Circle是一个类,实例化后成为了具体的对象,new关键字就是把类实例化为对象

 

4.再顺便说一下User user=null;和User user=new User(); 两者有什么区别,

User user=null; 声明一个变量,类型为User,不创建新实例。

User user=new User(); 声明一个变量,类型为User,同时创建一个新实例。

实际上,第一种写法也可以只写 User user;

但是这样编译器可能会出现Warning,给个null空值,编译器就不会报警了。

第二种写法创建一个新实例,是需要消耗一点点的CPU资源和内存资源的,如果你不需要一个新实例,就用第一种方法。

区别就是这样了

应用场景:

  

User user=null;
List<User> users=new List<User>();
for(.....)
{
   user=new User();
    users.add(user);
}

这样的好处是 user类似一种指针,我每次循环,这个指针指向新的User地址这样在循环中不用每次声明新地址

 

具体要看情况而定,要使用user对象就要有他的实例化对象,如果之前有user对象了就使用第一种用来获取,否则就要使用第二种自己新建一个来用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值