黑马程序员_06面向对象(2)封装

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

封装:

隐藏对象的属性和实现细节,仅仅对外提供公共访问方式

好处:将变化隔离,提高复用性和安全性

封装原则:隐藏不对外提供内容,属性都隐藏

权限修饰符:用于修饰成员(成员变量和成员函数)

public(公共),访问权限是最大的

,private(私有),私有仅仅是一种封装的表现形式,被私有化的成员只在本类中有效

void:表示没有具体的返回值

main;虽然不是关键字,但是被JVM识别

将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性

类中的set方法,类型是void,不需要返回;get方法的返回类型和它获取的变量一致

构造函数:

函数名与类名相同,不用定义返回值类型,不可以写return语句,多个构造函数是以重载的形式存在的。

构造函数与一般的函数在写法上面有不同,运行也有不同

一建立就运行,作用是给对象进行初始化,并且只运行一次

而一般方法是对象调用才执行,给对象添加对象具备的功能.,可以被对象调用多次

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

构造代码块:

作用:给对象进行初始化,对象一建立就运行,并且优先于构造函数执行

区别:构造代码块对所有对象统一初始化,而构造函数给对应对象初始化

this:

代表本类对象,代表它所在的函数的引用

哪个对象调用this所在的函数,this就代表哪个对象

用于区分局部变量和成员变量同名的情况

应用:

定义类中功能时,该函数内部调用该函数的对象,这时就用this表示,本类功能内部使用了本类对象,都用this表示

对this的调用必须是构造函数的第一行

static(静态):
用于修饰成员(成员变量和成员函数)
被修饰后的成员具备以下特点:
随着类的加载而加载,,类的消失而消失,生命周期最长

优先于对象存在,当不涉及到特有数据时就可以使用
被所有对象所共享,可以直接被类名调用,例:类名.静态方法
注意:

静态的好处:对对象的共享数据进行单独空间的存储,节省空间

静态的弊端:生命周期过长,访问局限性(只能访问静态)
静态方法只能访问静态成员
静态方法中不可以写this,super关键字,因为静态优先于对象存在
主函数也是静态的,主函数是特殊函数,作为程序的入口,被JVM调用

使用时机:

当对象中出现共享数据时,定义静态变量(类变量)

对象中的特有数据要定义成非静态存在于堆内存中.

静态函数:

当功能内部访问到非静态数据(对象特有数据),就可以定义,将方法静态后,方便使用,但还是可以被其他程序建立对象的

如果为了让程序严谨,强制该类不能建立对象,就将构造函数私有化


对象的初始化过程:

当new一个对象的时候

1,因为new用到了类文件,所以会先将这个类加载到内存中

2,执行该类的静态代码块(如果有的话),给类进行初始化

3,在堆内存中开辟空间,分配内存地址

4,在堆内存中建立对象的特有属性,并默认初始化

对属性进行显式初始化;

对对象进行构造代码块初始化

对对象进行对对应的构造函数初始化

将内存地址赋予栈内存中的变量(引用类类型变量)

对象调用成员的过程:

静态区:类名.静态方法名

非静态:this.特有属性名


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值