Cat one =new Cat();

Cat one =new Cat();

尽管都学了几天了,但是仍对这一步不理解,这到底是什么意思?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
吃吃吃鱼的猫 2019-04-20 16:16:48

同学你好,因为是在同一个方法中,所以,局部变量在if、switch、for/while循环里,值是会发生改变的。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-04-20 15:00:45

同学你好,这就是java的语法规则,同学记住结论即可。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    老师,局部变量在if、switch、for/while循环里,值是可以发生改变的吧? 因为在以前的学习里,是可以的
    2019-04-20 15:23:06
吃吃吃鱼的猫 2019-04-20 10:35:25

同学你好,老师正在编写例子,没有回避同学的问题。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    误会你了,不好意思啊
    2019-04-20 10:37:00
吃吃吃鱼的猫 2019-04-20 10:28:05

同学你好,类当做参数和基本数据类型当做参数用法基本一致,即在被传入的方法中可以直接使用该对象或该数据,但是有一个区别,同学可以注意一下:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的值。但是基本数据类型被当作参数传递到一个方法后,此方法不会改变该数的值。

这里举一个小例子:

例如:方法test中传入Cat对象。

Cat cat=new Cat("小红",17,"女");//属性依次为name,age,sex
public void test(Cat cat){
    cat.setName("小明");
    cat.setAge(2);
    System.out.println(cat.getSex());//输出"女"
}
System.out.pritln("名字为:"+cat.getName()+",年龄为:"+cat.getAge()+",性别为:"+cat.getSex());
//输出,名字为:小明,年龄为:2,性别为:女

方法中传入基本数据类型

int a=1;
public void test(int a){
    a=2;
}
System.out.println(a);//输出a=1

由上面的例子可得,a(基本数据类型)的值传入test方法中,出了test方法,值未改变。

cat(对象)的值传入test方法中,出了test方法,值被改变。

这是两者的一点区别。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    老师,这是为什么呢?
    2019-04-20 10:36:25
吃吃吃鱼的猫 2019-04-19 16:25:32

同学你好,Cat one=new Cat();

可以理解为三步:

  1. Cat one;定义一个Cat类的引用

  2. new Cat();创建Cat对象

  3. Cat one=new Cat();将引用指向真正的对象。

one.run(one.name),这是将Cat对象的属性当成参数传了进去,不能写成one.run(name)。原因是name是Cat对象中的属性,在CatTest并不存在,不能直接在CatTest类中使用。

参数可以是基本数据类型和引用数据类型,而类是属于引用数据类型,所以像基本数据类型一样,类也可以作为方法参数。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    老师,类可以当方法的参数传,在课程里并没有专门开一节课去详细解释,只是在去用时视频里捎带着提一下,这导致我在这里的知识薄弱。老师,你把类可以当参数传的一些用法、规则限制什么的具体讲讲,谢谢你!
    2019-04-19 19:34:57
  • 提问者 鱼儿0001 #2
    老师,类可以当方法的参数传,在课程里并没有专门开一节课去详细解释,只是在去用时视频里捎带着提一下,这导致我在这里的知识薄弱。老师,你把类可以当参数传的一些用法、规则限制什么的具体讲讲,谢谢你! 请不要刻意回避我的这个问题好吗?不然我不知道报你们的课程是为了什么,跟老师你们去玩躲猫猫?或者觉得你们不负责任?
    2019-04-20 10:26:40
提问者 鱼儿0001 2019-04-19 15:12:04

并且,我还有些别的问题:

1、视频里最后一步:one.run(one.name),这是把属性当成参数传了进去,老师,能不能写成one.run(name)?

2、关于参数这一块儿,除了像是int、double数据类型可以传参外,还有哪些可以当参数传?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师