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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 维纳斯之叶 于 2012-11-17 08:35 编辑

为什么在类里边可以只写属性,但是不写字段呢?比如定义一个类
class Person
{
//private int age; 为什么这句话可以不写,直接写属性??
  public int Age{get;set;}
}
属性不是不存储值吗?那我要是在Main函数中这样写:
Person p=new Person();
p.Age=20;//这里面的20存储在哪了??

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
你的Age中,set方法并没有调用age,当然可以不写

p.Age = 20; 存到了  Age  的 value 中

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
为什么在类里边可以只写属性,但是不写字段呢?比如定义一个类
class Person
{
//private int age; 为什么这句话可以不写,直接写属性??//定义成员变量的时候系统会分配一个默认类型值,可以不写
  public int Age{get;set;}
}
属性不是不存储值吗?那我要是在Main函数中这样写:
Person p=new Person();
p.Age=20;//这里面的20存储在哪了??
1) 局部变量
$范围:定义在一个方法内部的变量;
$作用域:其作用域为所在代码块,也称为临时变量、栈变量;
$生命周期:从创建开始到方法(函数)结束为止;
$特点:在使用之前必须要对其初始化;
$一律存放在栈中。
2) 实例变量
$范围:定义在一个类内部但不在方法中的变量;
$作用域:其作用域为整个类,能够被操作的范围是类的内部;
$生命周期:对象被创建的时候开始,对象被垃圾回收的时间结束;
$特点:如未定义其初值,系统会自动对实例变量进行默认初始化(默认值为null),使用之前必须创建类的实例;
$每一个对象的实例变量的值是相互独立的;
$一律存放在堆中。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马