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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘旭日东升 中级黑马   /  2016-6-9 19:53  /  550 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类程序:
class Person{

Person(String name, int age ){
  
}

}
主程序:
class TestPerson {

public static void main (String args []){
  Person one = new Person("zhangsan", 10);
  Person two = new Person("lisi", 20);
  System.out.println("对象1的名字是:"+one.name+"对象1的年纪是:"+one.age);
  System.out.println("对象2的名字是:"+two.name+"对象2的年纪是:"+two.age);
  
}

}
这时候主程序执行会出错误。

如果把类程序写成:

class Person{
Person(String n, int i){
  name = n;
  age = i;
  
}
String name;
int age;
}
这时候主程序执行就不会出错。
请问这两个类程序的区别在哪里,为什么不可以用第一种写法,小弟刚刚学习java,还请大神能够讲解的通俗易懂,说的太深小弟怕听不懂




1 个回复

倒序浏览
本帖最后由 牛凌霄 于 2016-6-9 20:24 编辑

额,确定不懂吗?其实就是局部变量和成员变量区别:
一,调用:one.name,two.name是调用类中成员变量的方式,而第一种类写法,你并没有去声明成员变量name啊.
二,作用范围:有参构造中的name这一局部变量只能在其方法内有效,所以你主程序中是调用不到它的.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马