A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邢晏玮 中级黑马   /  2012-10-30 00:49  /  2050 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邢晏玮 于 2012-11-9 15:53 编辑

在进行一个类实例化的时候,比如
,car  c=new car();那个括号是什么用的呢?为什么要写那个括号呢?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

5 个回复

倒序浏览
首先是语言规则。
其次 new car(), 因为括号里什么都没有,这时候会调用到car 类里面的无参构造函数 car(){}
如果 car类里面还有其它比如 car(String name, double price){} ,这样的构造函数,在写  car c = new car("Benz", 1000); 创造对象的时候, 就会调用到这个有参数的构造函数.

刚开始学习的话就先把这个格式记下来,以后学的多了,就会越来越明白的。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
要知道实例化,也就是创建对象的时候会去调用本类的构造函数,
这个括号的意思就是往构造函数传参数用的,如果没有这个括号,
有参数的构造函数不就没办法传参数了么

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
实例化的其实就是我一个对象分配内存空间,至于空间的内容是要靠构造方法传递的,所以实例化是要调用类的构造方法,
至于调要哪一个构造方法就是看括号的参数了,这就好像是你调用程序里别的方法一样,也要加括号的。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
当创建一个类的对象实例时

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

起到初始化的作用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马