封装

1     面向对象的理解举例

//举例——买电脑
1  查资料
2  砍价,购买
3  装机
——》》  这是面向过程
1  找一专业的人
2  这个专业人具有专业水准,砍价,和装机的功能
3  这是买电脑的人就面对这个专业的人,这个人专业人就是对象。买电脑就不再针对过程,而是针对对象,更简单。

//举例 —— 招聘程序员
1  需求分析
2  软件设计
3  写程序

招聘就是一个面向对象的过程
公司里有找人需求,你用面向对象的思想思考问题,
你需要找专业编程经验的人来完成公司的工作,我就是那个对象,
我具有专业编程功能,你就成了指挥者,你就是在指挥我做事情,
为公司创造价值。

//举例 —— 找一对象,可以洗衣做饭,那那个洗衣做饭的就是对象,
他具有洗衣做饭的功能,你就成了指挥者 
//举例 —— 来上班本来是不是走路啊?有一天,你是不是买部车代步啊?
那车就有了代步的功能,车,就是具有代步功能的对象,你指挥车去目的地。
总结:万物皆对象。
-
-----------------------------------------------------------------------------------------------------------------------------------------
2  类中可以有主函数,但一般只有一个主函数,即一个入口。

---------------------------------------------------------------------------------------------------------------------------------------------------
3    匿名对象——
匿名对象使用方法一:
当对象的方法只用一次的时候,可以使用匿名对象,这样比较简便。
若果一个对象进行多成员调用,必须起个名字。(凡是简化的都有局限性)
匿名对象使用方式二:
可以将匿名对象单做实际参数进行传递。


new Car().num=5; 

4     面向对象的封装——使用对象的时候不需要知道对象的内部如何完成工作,只需要知道结果和如何使用。

封装:是指隐藏对象的属性和实现细节,仅对外提供 公共访问方式。
一  好处:
• 将变化隔离。
• 便于使用。
• 提高重用性。
• 提高安全性。
二  封装原则:
• 将不需要对外提供的内容都隐藏起来。
• 把属性都隐藏,提供公共方法对其访问。
--------------------------------------------------------------------------------------------------------------------------------------------
5   面向对象的封装性 private

 
  /*
体会封装性:private 私有
注意:封装不是私有的,私有仅仅是封装的一种变现形式,私有是最小权限。
      其实不私有也能实现封装。
注意:之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
      堆访问的数据进行操作,提高代码的健壮性。
*/
class person
{
private int age;
void speak()
{
System.out.println("age ="+age);
}
/*
注意:之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
      堆访问的数据进行操作,提高代码的健壮性。
*/
public void setAge(int a)  //设置年龄,对外提供宝贵设置年龄的方法
{
if (a>=0&&a<=130)
{
 age = a;
}
 System.out.println("nono");
}

public int getAge()   //获取年龄,对外提供宝贵获取年龄的方法
{
return age;
}

}

class persondemo 
{
public static void main(String[] args) 
{
person p = new person();
// p.age = -20;   //年龄属性私有了,不能直接访问。
p.setAge(20);  //里面设置方法访问
p.speak();
System.out.println(p.getAge());
}
}

——————————————————————————————————————————————————————
6   构造函数(对象一建立就会调用与之对应的构造函数,可以给对象进行初始化,如果没有写,则虚拟机默认加上。)
 
特点:
1.  函数名与类名相同
2.  不用定义返回值类型
3.  不可以写return语句
作用:
给对象进行初始化。
注意:
1.  默认构造函数的特点。
2.  多个构造函数是以重载的形式存在的。
 
 
/*
构造函数的小细节:
当类中没有加入构造函数时,系统就默认给该类加入空参数的构造函数。
当在类中自定义了构造函数时,系统就不加入空参数构造函数。

构造函数和普通函数的区别
构造函数对象一生成就运行,普通函数必须调用才运行
构造函数只能运行一次, 普通函数可以多次调用。
构造函数只能在构造函数间调用,不能被普通函数调用。 

那什么时候定义构造函数呢?
当分析事物时,该事物存在就具备的特性和行为,就定义构造函数初始化。

构造代码块:(作用:给所有对象进行统一初始化,权限优先于构造函数)
{
这里放代码,一产生对象就运行,他的权限高于构造函数
}
*/
构造代码块
{
cry(); //定义共性的初始化内容,比如所有孩子一出生都哭
}  

————————————————————————————————————————————————————————

6   this 的使用:
/*
this 的使用:
用this表示本对象
通俗点:那个对象在调用this所在函数,this就代表那个对象。
什么时候用 this ?
当定义功能的时候,该函数用到了调用该函数的对象的时候,就用this代表这个对象
this  可以用于构造函数间相互调用。只能放在构造函数的第一行。 原因:初始化动作要先执行。 
*/  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值