객체 지향 프로그래밍, 객체 클래스 및
첫째, 객체 지향
1. 객체 지향 무엇입니까
객체 지향 프로그래밍은 사고의 종류는 전임자의 경험을 요약되어있다에게, 프로그래머을 안내하는 방법, 더 나은 프로그램을 작성하는
핵심은 프로그래머가 작업과 상호 작용하는 이러한 개체를 예약 할 책임이 프로그램의 목적은 개체의 컬렉션입니다.
2, 몇 가지 경우
사례 1 : 냉장고에 넣어 코끼리?
프로세스 중심의 :
냉장고를여십시오
2.로드 코끼리
냉장고를 닫습니다
객체 지향 :
코끼리 기술로로드 된 개체를 찾기
요약 : 특정 운영자에 도체로부터 객체 지향 프로그래머의 관점에서 변화
그는 강조했다 : 물체가 허공에서 생성되지 않습니다, 우리는 자신을 디자인해야
사례 2 : 불교 경전
여래는 밖으로 확산 깨진 서의 더미가있다, 그는 스스로를했지만 그를 도와 다섯 개체를 찾을 수
여래는 한 개체가 스케줄링을 제어하기위한 책임을 질 수
객체가 변경 될 경우, 확장 성, 다른 물체에 영향을 미치지 않습니다
사례 3 : 카오 카오시,시 그의 부하가 만들어 질 수 주문한 나무에 새겨진
첫날 : 고기와 음료, 생활 Zhenshuang
다음날 : 고기와 음료, 생명 구조
셋째 날 : 와인과 노래, 생명 구조
객체 지향의 3, 세 가지 주요 장점
1. 확장 성
2. 유연성
3. 재사용
단점 :
1. 프로그램의 복잡도가 개선
정확하게 결과를 예측하지 (2)
4, 사용 시나리오
예를 들어 일반적으로 직접 사용자에게 프로의 높은 확장 성 요구 사항, : QQ, 마이크로 채널
둘째, 프로세스 지향 프로그래밍 아이디어
1 코어 관심사는 과정
이 과정은 단계적으로이 일을하기 전에 두 단계입니다
2, 장점과 단점
장점 : 명확한 논리, 복잡한 문제를 단순화 과정
단점 : 가난한 확장 성, 유지 보수성
3, 사용 시나리오
시스템 커널, 자식, 계산기 : 같은 낮은 확장 프로그램에 대한 요구 사항
, 모든 프로그램이 지향하는 객체의 특정 요구를 분석이 : 기억
(OOP 개념의 핵심) 셋째, 클래스 및 개체
1, 클래스
두 유형, 카테고리, 추상적 인 개념이다
이 같은 기능을 가진 수집 및 개체의 동일한 동작입니다
2 개체
일이, 자신의 특성과 동작을 특정이 존재인가
개체의 특성과 기술의 조합입니다
3 클래스 및 객체 관계
클래스는 일련의 객체를 포함
개체는 클래스에 속하는
생활에서 첫째, 다음 객체 클래스가
프로그램에서 개체를하기 위해 첫 번째 클래스 인 반면, 우리는 개체의 기능이 어떤 종류의 어떤 행동에 컴퓨터를 말해야한다
요약 결론 : 객체 지향 프로그래밍을 사용하는 경우, 첫 번째 단계에 대해 생각하는 어떤 객체 요구의 종류에 따라 필요한 정보의 유형을 요약 특성과 행동을 가진 객체, 어떤 종류의
4, 클래스와 객체를 생성
클래스를 정의하는 구문
class 类的名称:
# 类中的内容 描述属性和技能
#描述属性用变量
#描述行为用函数
#类名称 书写规范 首先是见名知意 名称是大驼峰命名法
#驼峰就是单词首字母大写 , 大驼峰是第一个字母大写,小驼峰是第一个字母小写
객체 구문을 작성 :
class Person:
pass
#创建对象
p = Person()
등록 표현 :
# 属性可以写在类中
# 类中的属性,是所有对象公共的
# 也可以写在对象中
# 对象中的属性,是每个对象独特的(不一样的)
# 如果类中和对象中存在同样的属性,先访问对象 如果没有在访问类
# 练习: 描述一个老师类 需要包含 一个公共属性和 一个独特的属性
class Teacher:
school = "oldboy"
t1 = Teacher()
t1.name = "jack"
t1.age = 28
삭제 검색을 변경 속성
# 增加属性
# 对象变量名称.属性名称 = 属性值
# 删除属性
del 对象的变量名称.属性名称
# 修改
对象.属性 = 新的值
# 查看属性 访问的是对象的所有属性
print(对象.__dict__)
# 访问对象的类信息
print(对象.__class__)
5 초기화 방법
초기화 방법이라고는 본질적 함수
특징 1 : 개체가 인스턴스화 될 때, 자동으로의 init 메소드
특징 2 : 자동으로 첫 번째 인수로 객체를 매개 변수 비트 자기의 이름은, 자기는 다른 이름이 될 수 있지만, 변화하지 않는 것이 좋습니다
기능 : 사용자 객체에 초기 값을 할당
운동 : 초기화 방법으로 그에게 속성을 설정하는 몇 가지 속성을 가진 클래스를 만듭니다
class Dog:
def __init__(self,kind,color,age):
self.kind = kind
self.color = color
self.age = age
d1 = Dog("二哈","黑白",1)
d1 = Dog("泰迪","棕色",2)
注意:该函数不能有任何返回值/.... 只能是None 规定如此..
목적 함수의 본질은 처리 될 정도로 그 기능이 데이터 처리 및 데이터 모두에 객체를 얻기 위해 데이터를 통합하고, 서로 데이터를 처리한다
(6) 결합 방법 개체
클래스 메소드는 기본적으로 방법 객체를 바인딩
그것은 특별한 것을하고,
객체가 자동으로 첫 번째 인수로 객체 자체에 전달 된 함수를 호출 할 때
그에게 전화하는 클래스 이름이 정상적인 기능 때, 여러 매개 변수가 몇 가지 매개 변수를 전달해야 할 수 있습니다
운동 : 자신의 이름 정보를 내보낼 수 있도록 인사말 기술을 가진 학생들의 클래스를 쓰기
class Student:
def __init__(self,name):
self.name = name
def say_hi(self):
print("hello my name is %s" % self.name)
7 클래스 결합 방법
클래스 결합 방법 @classmethod을 장식하기 위해 사용
특수 기능 :에 관계없이 클래스 또는 객체 호출의 첫 번째 인수로 자동 수신 클래스 자체입니다
객체에 바인딩하는 경우 : 기능 로직 시간 데이터 오브젝트로의 액세스를 요구할 때
클래스에 바인딩하는 경우 : 데이터 로직 기능이 때 클래스에 액세스해야하는 경우
8 구속력 접근
또는 정적 방법은,라고하는 데이터 액세스 클래스를 필요로하지 않는다이다입니다. 개체의 데이터에 액세스하는 데 필요하지 않습니다
구문 : @staticmethod
하지 일반적으로