面向对象抽象封装

? 第一章
第一次课
? 使用类图如何描述设计
- private(私有) 属性
+ public(公共) 方法
访问修饰符:
缺省(默认),只能被同一个包中的类访问
private(私有的),访问权限最小,只能自己访问
public(公共的),访问权限最大,任何类都可以访问
protected(受保护的)【继承中讲解】
? 面向对象设计的步骤
? 发现类(名词)
? 发现属性(名词或形容词)
? 发现方法(动词)
? 类和对象的概念
? 什么是类?如何创建类
类是一个模型、模板,是抽象的
? 什么是对象?如何创建对象
对象是模板的具体化、实例化,是客观存在的
? 类和对象的关系?
类是对象的抽象化,对象是类的实例化
? 类的成员有哪些?如何访问类的成员?
? this关键字,表示当前类的对象
? 只能在当前类中使用
? 不能在static方法中出现
? static标记的方法或属性,表示类的成员
? 在当前类,直接写方法名来调用
? 在其他类中调用
必须使用【类名(或对象名).static成员名】
? final关键字,表示类的常量(存储的是不变的数据)
? 修饰的全局变量(属性),常量
? 常量名,遵循编码规范,必须全部大写
? 声明后,必须马上赋值,在后面的代码中不能修改常量的值
? 如何调用常量?
? 在自己内部,直接写常量名
? 在其他类中,通过【对象名.常量名】

第二次课
? 构造函数——1种特殊的方法
? 特征?
? 方法名和类名相同
? 没有返回类型,void关键字都没有
? 一般情况下,访问修饰符是public的
? 作用?
初始化类的成员
? 如何调用?
创建对象时自动调用构造方法
类名 对象名=new 类名(【值】);

构造方法重载后,2个构造方法之间如何相互调用?
this(【值】);//必须写在第一行
? 注意事项:
? 如果类中,没有写构造方法,系统会自动提供一个无参数的构造方法用于初始化类的成员
? 如果类中,写了带参数的构造方法,系统将不再自动提供无参数的构造方法
? 方法重载
? 特征
? 在同一个类中
? 方法名相同
? 参数列表(个数、类型)不同
? 注意事项:
与方法的返回类型,访问修饰符没有任何关系
? 重载后的方法,如何调用?
根据传递的实参的个数和类型,自动查找对应的方法
课后作业:完成上机练习1、2、3、4

第三次课,封装的概念及使用
? 封装的好处? 
隐藏实现的细节,提高程序的可重用性和可维护性
? 封装的步骤?
? 将属性的public或缺省权限 修改为私有的private
? 编写封装属性的2个方法
? public void set属性名(属性数据类型 参数名){
}
? public 属性的数据类型 get属性名(){
return 属性名;
}
? 修改setter方法体,编写逻辑控制语句(比如if),限制参数不符合逻辑的值
? 自动生成属性对应的getter和setter方法
? 快捷键:Shift +Alt+ +S+R
? MyEclipse中菜单栏
Scource——>Generate Getters and Setters…

时间: 2024-08-04 00:11:45

面向对象抽象封装的相关文章

面向对象的封装性和多态性

面向对象之封装性: 1.继承要符合is-a的关系.即"子类is a 父类"——子类是父类.如:卡车是汽车,卡车is a 汽车. 2.父类中如果用Protected修饰符,表示只允许其子类访问,而不允许其他非子类访问: 父类中如果用private修饰符,子类是不能访问的. 3.除了构造方法不能被子类继承外,其他都可以直接被继承.可以用base关键字调用父类的构造函数:语法如下 :base(参数变量名) 使用base还可以调用父类的属性和方法. 注意:子类构造函数中已经定义了这些参数,在b

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

---Android培训.iOS培训.Java培训,期待与您交流----- 一.面向对象和封装 面向对象三大特征:封装.继承.多态. 封装是对象和类概念的主要特性.它是隐藏内部实现,稳定外部接口,可以看作是"包装". 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 好处:使用更加简单  变量更加安全 可以隐藏内部实现细节  开发速度加快. 苹果官方文档中,有一个配图生动的阐释了封装: @interface用于给人们显

面向对象之 封装 继承 多态

#!/usr/bin/env python # _*_ coding:utf-8 _*_ class Role(object): #继承object类 ac = None #脚本一执行跟着类一起存到了内存 类变量 #类变量和实例变量的区别: #类变量脚本执行跟着类一起存到了内存,不管是否调用都存在,实例变量是存在实例内的, def __init__(self,name,role,weapon): #初始化方法 实例化后自动执行 #self 代表实例本身.谁调用就是谁. name role,wea

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理) 一丶封装 , 多态 封装: ? ? ? ? ? ?将一些东西封装到一个地方,你还可以取出来 ? ? ? ? ? ?类设置静态属性, 设置一些方法 或者 对象, 对象可以在其对象封装一些属性 多态: ? ? ? ? ? ?python默认支持多态, 多态指的是一种事务具有多种形态 ? ? ? ? ? ?1.多态可以增加代码的灵活度: ? ? ? ? ? ?2.以继承和重写父类方法为前提: ?

C#面向对象(封装)

以上就是面向对象的封装和初始化:

面向对象(封装private)

/** * Created by 刘朋程 on 2014-5-22. */ class Testprivate {     private int age = 18;              //私有化age并赋值为18 public void setAge(int age)   //设置age范围     {         if (age>0 && age<100)         {             this.age = age;             spe

Python面向对象编程-封装

1引言 你点击了桌面上的Chrome图标,一个浏览器窗口出现了,输入网址就可以在Internet世界愉快玩耍.这一切是怎么实现的呢?Chromium这个多进程的程序是如何启动各个进程的呢?浏览器主进程(界面进程)启动了哪些线程?如何启动的呢?这些问题一直萦绕在心头,一起来看看源代码吧.本文主要针对Chromium for Mac的源代码,其它操作系统大同小异. 2背景知识 浏览器作为一个应用程序,是以进程的形式运行在操作系统上的.首先,Chromium是一个多进程的应用程序,我们需要了解Chro

黑马程序员——Java基础---面向对象之封装

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 面向对象之封装      一:封装概述 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: (1)将变化隔离(内部怎样变化外部是不需要知道的,只调用即可) (2)便于使用(我们不用知道内部构造直接使用就可以) (3)提高重用性

java基础面向对象之封装

java基础面向对象之封装 2017-01-15 封装 1)封装性就是保证类内部被外部类不可见 2)所有属性都必须使用private关键字声明 3)封转后的属性如果要被外部所访问就必须实现set和get方法 例如: 使用了private声明的属性只有在自己的类是可见的 1 class Book{ 2 private String title ; //使用private声明的属性 3 private int price ; 4 } 5 public class PrivateDemo1 { 6 p