面向对象概念
面向对象是利用类和对象来创建各种模型对真实世界进行描述,也能使程序变得简单。
class 类
一个类即对一类拥有相同属性的对象的抽象。其中类定义了这些对象都具备非属性以及方法。
object 对象
一个对象即是一个类的实例化后的实例,一个类必须经过实例化后才能在程序中调用,一个类可以有多个属性,每个对象也可以有不同的属性
encapsulation 封装
在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个容器,里面包含着类的属性以及方法。
防止数据被随意修改
使外部程序不需要关注对象内部结构,只需要通过对象对外提供的接口进行直接访问即可
inheritance 继承
一个类可以派生出子类,在这个类里定义的属性、方法自动被子类继承
通过父类->子类的方式以最小编码实现不同角色的不同点与共同点
polymorphism 多态
一个基类中派生出不同的子类,且每个子类在继承同样方法名的同时对父类的方法做了不同的实现,就是同一种事物表现出的多种状态。
定义类和对象
类的定义
1 class person(object):
2 #person类名,object是固定格式
3 def __init__(self,name):
4 #类的构造函数,对象的参数都由此处传入。self表示是对象自身
5 self.name = name
6
7 def hello(self):
8 #由于self等于对象自身,而构造函数已经将所有参数传给self了。所以类的方法可以直接调用类的属性。不会出现构造函数的局部不按量不能被其它方法访问
9 print("hello world,i'm %s"%self.name)
10
11 obj1 = person('zsq') #类的实例,即对象
12 obj1.hello() #对象调用方法
类的私有属性
对象的属性保存在对象内,对象的方法保存在类里面。类似于下面介绍的类的公有属性
1 __author__ = 'zhang'
2
3 class person(object):
4 def __init__(self,name): self.name = name
5 self.__heart = 'normal' #私有属性,对象不可调用。 类的方法可以进行调用,进行操作即外部不能调用,内部可以调用
6 def hello(self):
7 print("hello world,i'm %s"%self.name)
8
9 def get_heart(self): #访问私有属性的方法,让外部能访问但不能修改
10 return self.__heart
11
12 obj1 = person('zsq')
13 obj1.hello()
14 print(obj1.get_heart())#通过类的方法访问私有属性
15 print(obj1._person__heart) #强制访问私有属性
类的公有属性
对象的公有属性默认是引用类里面的,当通过对象操作公有属性其实是在对象本地新建一个与公有属性同名的变量而已,与原来的公有属性没有任何关系。只不过访问时候先在本地寻找对应的变量名,找不到再去类中寻找而已。 删除对象自己的公有属性其公有属性会恢复到类里面公有属性的值。
1 class person(object):
2 nationality = "CHINA"
3 def __init__(self,name):
4 self.name = name
5
6 obj1 = person('zsq')
7 obj2 = person('zsq1')
8 print(obj1.nationality)
9 print(obj2.nationality)
10 print('-------------')
11 person.nationality = "CN"
12 print(obj1.nationality)
13 print(obj2.nationality)
14 obj1.nationality = "USA"
15 print('-------------')
16 print(obj1.nationality)
17 print(obj2.nationality)
18 print('-------------')
19 del obj1.nationality
20 print(obj1.nationality)
21 print(obj2.nationality)
将类方法修改为私有方法
1 class person(object):
2 nationality = "CHINA"
3 def __init__(self,name):
4 self.name = name
5 def get_name(self):
6 print("get name is %s"%self.name)
7
8 obj1 = person('zsq')
9 obj2 = person('zsq1')
10
11 def get_name2(self):
12 print("this is private fun get name %s"%self.name)
13 obj2.get_name = get_name2
14 obj1.get_name()
15 obj2.get_name(obj2)
分享到:
相关推荐
易语言面向对象学习(三)源码,面向对象学习(三),取姓名,置姓名,取出勤天数,置出勤天数,取日工资,置日工资,计算月工资,置销售额
EcmaScript面向对象1
C++面向对象1
python 02、面向对象1-1_面向对象概述、类和对象_Day09_AM.mp4
JavaScript程序设计 面向过程与面向对象 6.1.1 面向过程与面向对象 ...1、面向对象的特征 面向对象具有三大特征: 封装性 继承性 多态性 6.1.2 面向对象的特征 特征一 封装性 封装:指的是隐藏内部的实现细节
面向对象 面向对象 面向对象面向对象 面向对象 面向对象面向对象 面向对象 面向对象面向对象 面向对象 面向对象面向对象 面向对象 面向对象
day003 面向对象1-类和对象.doc
Python面向对象面向对象面向对象的程序设计把计算机程序视为一组对象的集合在Python中,所有数据类型都可以视为对象,当然也可以自定义对象万物皆为对象概念从
JAVA 面向对象。程序设计。java初级。入门
面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...
《面向对象分析与设计(第3版)》是UML创始人Grady Booch的代表作之一,书中介绍的概念都基于牢固的理论基础。同时,《面向对象分析与设计(第3版)》又是一本注重实效的书,面向架构师和软件开发者等软件工程实践者的...
国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...
借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...
详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...
面向对象课后题面向对象课后题面向对象课后题面向对象课后题面向对象课后题面向对象课后题
本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...
面向对象技术讲解面向对象技术讲解面向对象技术讲解面向对象技术讲解面向对象技术讲解面向对象技术讲解