如题,类类型变量与基本类型变量在做函数参数时的区别。对一般新手而言,使用类类型变量作为函数参数的时候应该还是比较少的,但是最终我们都要用到这些引用型变量的。
- /* --类类型与基本类型同时作为函数参数的情形--
- --毕老师上课用电脑--
- */
- class Computer
- {
- public void run()
- {
- System.out.println("computer run");
- }
- public void reStart()
- {
- System.out.println("computer reStart");
- }
- }
- class Teacher
- {
- private String name;
- private Computer pc;
- Teacher(String name,Computer pc)//--类类型变量与一般变量的使用区别
- {
- this.name = name;
- this.pc = pc;
- }
- void protel()
- {
- new Computer().run();//-- 11??
- System.out.println(" Shang Ke "+name+" "+pc);
- }
- }
- class ExceptionDemo2
- {
- public static void main(String[] args)
- {
- Teacher t = new Teacher("Bi",new Computer());//--类类型变量与一般变量的使用区别
- t.protel();
- }
- }
从上面代码可以看出class Computer 和class Teacher 没有半点关系。但是我们要在class Teacher里面用到 class Computer的方法。于是,在Teacher的构造函数里面,我们传进了teacher name,以及Computer pc。这里说明一下,因为name是String 类型的变量(基本类型数据);而pc是class Computer 的对象引用,也就是引用类型数据。于是二者在作为参数时候,前面的参数类型分别是(String XXX,Computer XXX)
- Teacher(String name,Computer pc);
另外,从主函数中进行实参的传递的时候,类类型变量和引用类型变量也是有区别的。我们看到Teacher t = new Teacher("Bi",new Computer());,其中的"Bi",代表的是形参中的name。new Computer(),代表的是形参中的pc。注意pc的类型是Computer,不是String。----大家知道new关键字是用来创建对象的。我们可以看到Teacher类是在主函数中直接创建对象的,那么Computer类是在哪创建对象的呢?
没错,就是在new Teacher(....)的实参中进行实例化的过程的。
- Teacher t = new Teacher("Bi",new Computer());
这样一来,我们就清楚了,虽然Computer pc是以作为构造函数Teacher(..)的函数参数的形式出现的,但是这不妨碍其进行对象实例化,也不能妨碍其进行对象实例化操作。因为我们知道,任何类中的非静态方法,都是需要其本类或者子类的对象来调用的。也就是说,如果不对Computer 进行对象实例化,那么该类中定义的方法,任何其他类不能调用,其本身,也没法使用。
通过这个小的Demo,我们可以看到两点内容:1,类类型变量与基本类型变量在作为函数参数时,都是怎样进行实参传递的?2,类的对象实例化操作,可以在主函数中直接进行,也可以以函数参数的形式进行。
——————————————————————————————————————————————
搜索
复制