黑马程序员-面向对象之封装

来源:互联网 发布:python target的用法 编辑:程序博客网 时间:2024/05/29 19:50
------- android培训、java培训、期待与您交流! ----------

面向对象-封装:

       封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

       例如:电脑机箱,内部设备封装在机箱内部。

封装的好处:

1.      将变化隔离

2.      便于使用

3.      提高重用性

4.      提高安全性

封装的原则:

       将不需要对外提供的内容都隐藏起来。

       把属性都隐藏,提供公共方法对其访问。

class Person

{

       privateInt age;       //private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。私有只在本类中有效。

       私有仅仅是封装的一种表现形式。

       publicvoid setAge(int a)

       {

              age=a;

}

public intgetAge()

{

       return age;

}

       //Int age;     //可以直接访问

       voidspeak()

       {

              System.out.println(age);

}

}

Class Persondemo{

       Publicstatic void main(String []args){

              Personp = new Person();

              //p.age=20;    //直接访问了,可能会有安全隐患-20

              p.setAge(20);   //调用setAge方法

              p.speak();

       }

}

之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码健壮性。

构造函数:

       特点:

1.      函数名与类名相同

2.      不用定义返回值类型

3.      不可以写return语句

作用:

对象一建立就会调用与之对应的构造函数,给对象进行初始化。

小细节:

       当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。

当在类中自定义了构造函数时,默认的构造函数就没有了。

 

当分析事物时,该事物已存在就具备一些特性或行为,那么就将这些内容定义到构造函数中。

class Person

{

       privateString name;

       privateint age;

       /*构造代码块

       作用:给对象进行初始化。

       对象一建立就运行,而且优先于构造函数执行。

       和构造函数的区别:

       构造代码块是给所有对象进行统一初始化,

       而构造函数是给对应的对象初始化。*/

       {

              System.out.pritnln(“构造代码块”);

}

       Person()

       {

              System.out.println(“构造函数”);

}

Person(Stringname)

{

       this.name=name;

}

Person(Stringname,int age)

{

       this(name);            //this语句

       this.age=age;

}

}

this:代表了本类对象。代表它所在函数所属对象的引用,那个对象在调用this所在的函数,this就代表那个对象。

当定义类中功能时,该函数内部要用到调用该函数的对象时,用this表示这个对象。

this语句只能定义在构造函数的第一行,用于构造函数之间的调用.

原创粉丝点击