黑马程序员技术交流社区

标题: 新手请教一个小小的问题 [打印本页]

作者: 邢晏玮    时间: 2012-10-30 00:49
标题: 新手请教一个小小的问题
本帖最后由 邢晏玮 于 2012-11-9 15:53 编辑

在进行一个类实例化的时候,比如
,car  c=new car();那个括号是什么用的呢?为什么要写那个括号呢?
作者: 马磊    时间: 2012-10-30 00:54
首先是语言规则。
其次 new car(), 因为括号里什么都没有,这时候会调用到car 类里面的无参构造函数 car(){}
如果 car类里面还有其它比如 car(String name, double price){} ,这样的构造函数,在写  car c = new car("Benz", 1000); 创造对象的时候, 就会调用到这个有参数的构造函数.

刚开始学习的话就先把这个格式记下来,以后学的多了,就会越来越明白的。
作者: 徐升兴    时间: 2012-10-30 00:57
要知道实例化,也就是创建对象的时候会去调用本类的构造函数,
这个括号的意思就是往构造函数传参数用的,如果没有这个括号,
有参数的构造函数不就没办法传参数了么

作者: 张胜格    时间: 2012-10-30 08:36
实例化的其实就是我一个对象分配内存空间,至于空间的内容是要靠构造方法传递的,所以实例化是要调用类的构造方法,
至于调要哪一个构造方法就是看括号的参数了,这就好像是你调用程序里别的方法一样,也要加括号的。
作者: 崔政    时间: 2012-10-30 13:24
car c=new car();括号内为参数,现在没有参数,就说明是new了一个空参数的构造函数的对象
当然了,括号内可以有参数,对应带参数的构造函数

示例:
  1. public class Test4 {
  2.         public static void main(String[] args){
  3.                 Car c1=new Car();
  4.                 Car c2=new Car("保时捷");
  5.         }
  6. }

  7. class Car{
  8.         private String name;
  9.         public Car(){
  10.                
  11.         }
  12.         public Car(String name){
  13.                 this.name=name;
  14.         }
  15. }
复制代码

作者: 高腾    时间: 2013-6-13 18:50
当创建一个类的对象实例时

new的作用就是调用其类的构造函数(分有参和无参,因为构造函数是可以重载的)

起到初始化的作用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2