黑马程序员---类的属性和构造方法

---------------------- android培训java培训、期待与您交流! ----------------------

 

一、属性

1.属性通俗定义(容易理解但不规范):

通俗的说,就是定义一个public的具有get/set方法的变量,这个变量是用于保护一个私有变量。

允许外部变量访问的变量一定要声明为属性。

属性的封装:

              先定义一个私有变量 比如  int s;  然后再选中它,点重构→封装字段。

 

例如

int s;                                                        ——————————受保护的私有变量

       public int S                                  ——————————用于给私有变量传值,取值地变量

       {

           get { return s; }                     ——————————给属性赋值的方法

           set { s = value; }                    ——————————从属性中取值的方法

       }

2.读写属性

具有get/set方法的属性就叫做读写属性。

只有get方法的属性称为只读属性,这个属性只能读取不能写入。

只有set方法的属性称为只写属性,这个属性只能写入不能读取。(用的很少)

二、构造方法

1.构造方法的作用

上面的属性中有一个只读属性,只读怎么赋值呢?这就要用到构造函数。

当我们实例化一个类时,系统会对这个类的属性进行初始化(分配内存空间),数字类型的初始化为0或0.0,string类型的初始化为null,char类型的初始化为\0。

 

使用构造方法的好处:

对多个属性赋值时,不需要重复的写实例名;

可以保证用户在new一个对象的时候必须对某一个属性进行赋值;

和2)类似,在创建对象时,对只读属性进行初始化。

 

绝大多数类都有构造方法,当我们定义好一个类之后,如果我们没有写构造方法,那么系统会自动给我们加上一个默认的无参数的构造方法,我们看不到,也无作用。

 

2.构造方法的使用

构造方法的名字和类的名字相同,并且无返回值,连void都能省略。我们一旦手写了一个构造方法,系统原先默认的无参的构造方法就不再为我们添加了。

比如给只读赋值:

主程序中:

            Person zsPerson = new Person("张三",’男’);

类中:

publicPerson(string name, char sex)

        {

            this.name = name;

            this.sex = sex;

            this.age = 18;

            this.chinese = 0;

            this.math = 0;

            this.english = 0;

        }

而且,要实例化一个类,必须调用它的构造方法。

3.构造方法的重载

和其他方法一样,构造方法也可以重载。方式类似,根据传入的参数确定要用的构造函数。

比如:

publicPerson(string name,char sex,int age,int chinese,int math,int english)

        {

            this.name = name;

            this.sex = sex;

            this.age = age;

            this.chinese = chinese;

            this.math = math;

            this.english = english;

        }

 

       public Person(string name, char sex)

        {

            this.name = name;

            this.sex = sex;

            this.age = 18;

            this.chinese = 0;

            this.math = 0;

            this.english = 0;

        }

当输入的类型是:string,char,int,int,int,int时是第一个重载,比如

Person zsPerson= new Person("张三¨",'男',17,90,80,100);,

当输入的类型是:string,char时是第二个重载,比如:

              Person lsPerson = new Person("李四",'女');

 ---------------------- android培训java培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值