黑马程序员技术交流社区

标题: 为什么在类里边可以只写属性,但是不写字段呢?? [打印本页]

作者: 维纳斯之叶    时间: 2012-9-22 18:51
标题: 为什么在类里边可以只写属性,但是不写字段呢??
本帖最后由 维纳斯之叶 于 2012-11-17 08:35 编辑

为什么在类里边可以只写属性,但是不写字段呢?比如定义一个类
class Person
{
//private int age; 为什么这句话可以不写,直接写属性??
  public int Age{get;set;}
}
属性不是不存储值吗?那我要是在Main函数中这样写:
Person p=new Person();
p.Age=20;//这里面的20存储在哪了??
作者: 李阳Leo    时间: 2012-9-22 19:05
你的Age中,set方法并没有调用age,当然可以不写

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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2