为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这里没有用到内部类,却在调用age的时候加了Animal.呢?

为什么这里没有用到内部类,却在调用age的时候加了Animal.呢?

sorgs 2016-05-23 20:32:29
package com.imooc;public class Animal { public int age = 10; public String name; public void eat(){ System.out.println("年龄:"+age+"动物具有吃东西的能力!"); } public Animal(){ System.out.println("Animal类执行了"); age = 20; }}package com.imooc;public class Dog extends Animal { public void eat(){ System.out.println("年龄:"+age+"狗具有吃东西的能力!"); } public Dog(){ System.out.println("Dog类执行了"); }}package com.imooc;public class Initail { public static void main(String[] args) { // TODO Auto-generated method stub        Animal animal = new Animal();        System.out.println("animal age:"+animal.age); Dog dog = new Dog();        dog.age = 10;        dog.name = "xiaohua";        dog.eat(); }
查看完整描述

2 回答

已采纳
?
惟愿_无事常相见

TA贡献30条经验 获得超25个赞

你标记问题的的前一行new出来一个Animal对象,age是定义在Animal类中的非静态的public变量,只能通过创建对象调用。

查看完整回答
1 反对 回复 2016-05-23
  • sorgs
    sorgs
    也就是说我这里相当于静态的主函数去调用费静态的函数?(Java还没学完!!!可笑的地方请谅解)
  • 惟愿_无事常相见
    惟愿_无事常相见
    不可笑。 你标记的animal是Animal类new出来的一个对象。 age应该是你定义在Animal类中的一个public型的成员变量。 像这样:public int age; 你要使用这个age就应该这样创建一个Animal类对象animal再通过对象animal调用成员变量age。
  • sorgs
    sorgs
    我想我应该懂了。多谢了
?
qq_残局_03390168

TA贡献2条经验 获得超0个赞

你定义的age是非静态变量,调用其他类的非静态变量和非静态方法要用该类实例化的对象去调用,调用静态变量和方法则用该类的类名进行调用!!

查看完整回答
反对 回复 2016-10-30
  • 2 回答
  • 0 关注
  • 1401 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信