类和对象

类属性和类方法

梦想与她 提交于 2019-11-28 01:27:33
当一个属性、方法被static修饰的时候,就叫做类属性、类方法,又叫做静态属性、静态方法 。 没有被static修饰的属性,就叫对象属性、对象方法,又叫实例属性、实例方法和非静态属性、非静态方法。   当一个属性被声明成类属性,那么所有的对象,都共享一个值,所有对象都可以修改这个值,一经修改前面的值将会被丢弃。   而对象属性,每个对象的对象属性的值都互不影响,修改一个对象的对象属性,另一个对象的对象属性不变。 访问类属性有两种方式,访问即修改和获取。   1. 对象.类属性/类方法   2. 类.类属性/类方法   访问一个对象方法,必须建立在有一个对象的前提的基础上 。   访问类方法,不需要对象的存在,直接就访问。 什么时候使用对象属性、对象方法,类属性、类方法?   如果一个属性每个对象都不同,例如 :name,就是用对象属性。   如果一个属性每个对象都共用,例如 :head,每个人都有四肢和头部,就用类属性。   如果一个方法内,调用了对象属性,就使用对象方法;反之没有调用对象属性,就可以考虑使用类方法。 属性初始化: 对象属性初始化   1.声明该属性的时候初始化   2.在构造方法中初始化   3.初始化块:   public class Hero{     int hp;     {       hp = 500;     }   } 类属性初始化   1

类和对象

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 20:27:54
1、Python中面向对象程序设计特点:封装、继承和多态 关于继承:可以打个形象的比方 矩形、菱形、平行四边形和梯形等都是四边形,以平行四边形为例,如果把平行四边形看成四边形的延伸,那么平行四边形就复用了四边形的属性和行为,同时添加了平行四边形特有的属性和行为,如平行四边形的对边平行且相等。 ---->在Python中可以把平行四边形类看作是继承四边形类后产生的类,其中,将类似于平行四边形的的类称为子类,将类似于四边形的类称为父类或超类, 在阐释平行四边形和四边形关系时,可以说平行四边形是特殊的四边形,却不能说四边形是平行四边形。 ---->同理Python中可以说子类的实例都是父类的实例,却不能说父类的实例都是子类的实例。 继承中 方法重写 :指的是派生类方法想重写,不想从基类继承时,就需要改写基类的方法。 基类的成员都会被派生类继承,当基类中的某个方法不完全适用于派生类时,就需要在派生类中重写父类的这个方法。 class Fruit: # 父类 def harvest(self): pass class Apple(Fruit): # 派生类 def harvest(self): # 方法重写 pass 派生类中定义的__init__方法不会自动调用基类的__init__方法,如想让他调用,需要在派生类中加入super()__init__() class Fruit: # 父类

Java自学-面向对象 类和对象

被刻印的时光 ゝ 提交于 2019-11-27 18:13:57
Java中的类和对象 引入面向对象的基本概念 假设,我们要设计一个LOL这样的游戏,使用面向对象的思想来设计,应该怎么做? 步骤 1 : 设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物 类: 英雄(Hero) 状态: 名字, 血量,护甲,移动速度 注: 本例用到了3种数据类型 分别是 String(字符串),float(浮点数), int(整数). 注: 这个类没有主方法,不要试图运行它。 并不是所有的类都是有主方法的。 public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 } 步骤 2 : 创建具体的英雄 类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄 一个个具体的英雄,就叫一个个的对象 new Hero() 就是java中创建一个英雄对象的意思 public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 public static void

基于类和对象的高精度算法封装

五迷三道 提交于 2019-11-27 13:58:48
高精度口诀(别问我这是从哪里来的,你在网上找不到是因为这就是我写的) :-) 1.高精度加法:相加进位再去零 2.高精度减法:判断相减再去零 3.高精度乘法:相乘预估再去零 4.高低精乘法:相乘进位再去零 #include<iostream> #include<cstring> using namespace std; class BIGINT{ public: int num[505]; int length; bool positive; BIGINT(string str=""){ memset(num, 0, sizeof(num)); positive = true; if(str == ""){ return; } else{ length = str.length(); for(int i = 0; i<str.length(); i++){ num[i] = str[str.length()-i-1]-'0'; } } } void show(){ if(positive == false){ cout<<"-"; } for(int i = length-1; i>=0; i--){ cout<<num[i]; } } }; int compare(BIGINT &a,BIGINT &b){ if(a.length > b.length){ return 1; }

Java 对象和类

柔情痞子 提交于 2019-11-27 09:35:54
Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念。 对象 :对象是类的一个实例( 对象不是找个女朋友 ),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类 :类是一个模板,它描述一类对象的行为和状态。 下图中 男孩(boy) 、 女孩(girl) 为 类(class) ,而具体的每个人为该类的 对象(object) : Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建Java对象的模板。 通过下面一个简单的类来理解下Java中类的定义: public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } }

c++面向对象 —— 类和对象

北城余情 提交于 2019-11-27 09:09:30
类和对象 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。 一、类定义 实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作 类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。 class Box { public: double length; // 盒子的长度 double breadth; // 盒子的宽度 double height; // 盒子的高度 }; 关键字 public 确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为 private 或 protected 二、定义c++对象 对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样 Box Box1; // 声明 Box1,类型为 Box Box Box2; // 声明 Box2,类型为 Box 对象 Box1 和 Box2 都有它们各自的数据成员。 三、访问数据成员 使用直接成员访问运算符 (.) 来访问 #include <iostream> using namespace std; class Box { public: double

Day19:面向对象 类和对象

泪湿孤枕 提交于 2019-11-27 05:57:01
Day19:面向对象 类和对象 一:对象的 加载顺序 class A: country = 'China' print(country) # China def __init__(self): print('执行我了') A.country = 'English' # China 类的加载顺序 1.类内部一个缩进的所有代码都是在py文件从上到下解释的时候就已经被执行了 2.类中的代码永远是从上到下依次执行的,不需要调用 3.如果有同名的方法、属性,总是写在后面的会生效 class A: country = 'China' def __init__(self): print('执行我了') # 执行我了 def func(self): print('1111111') def func(self): print('2222222') # 2222222 只打印2222222,不打印1111111 # 如果有同名的方法、属性,总是写在后面的会生效 A.country = 'English' a = A() # 执行我了 a.func() # 2222222 class A: country = 'China' country = 'English' def __init__(self): print('执行我了') # 执行我了 def func(self): print(

Kotlin学习总结:类、对象和接口(三)

自闭症网瘾萝莉.ら 提交于 2019-11-27 02:40:52
Kotlin学习总结:类、对象和接口(三) 编译器生成的方法:数据类和委托类 Java平台定义了一些需要在许多类中呈现的方法,并且通常是以一种很机械的方式,譬如equals、hashCode及toString。幸运的是,Java IDE可以将这些方法的生成自动化,所以通常不需要手动写它们。但是这种情况下,你的代码库包含了样板代码。Kotlin的编译器就领先一步了:它能将这些呆板的代码生成放到幕后,并不会因为自动生成的结果导致源代码文件变得混论。 通过对象方法 就像Java中的情况一样,所有的Kotlin类也有许多也许你想要重写的方法:toString、equals和hashCode。 Client类的最初声明 class Client ( val name : String , val postalCode : Int ) 字符串表示:toString() Kotlin中的所有类同Java一样,提供了一种方式来获取对象的字符串表示形式,虽然也能在其他的上下文中使用这个功能,但是这还是主要用在调试和日志输出中。默认来说,一个对象的字符串表示形如Client@5e9f23b4,这并不十分有用。要想改变它,需要重写toString方法。 为Client实现toString() class Client ( val name : String , val postalCode : Int

Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别

时光怂恿深爱的人放手 提交于 2019-11-27 00:50:20
1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。 面对对象编程是java非常重要的一部分,作者本身之前学过c++所以省略了部分基础,详见例子: https://www.runoob.com/java/java-object-classes.html 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 a.类的内容: 方法:比如说Dog可以有 void barking(),void sleeping() 这些行为。 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。比如说我们要定义狗的年龄,就从外部引入一个 age_dog 的变量赋值给成员变量。没有默认值,必须自己赋值。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。比如狗 dog 可以有 age,color 这种特征变量。有默认值,如果没有会系统自动分配,根据类型不同则默认值不同。 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。 注

Python抽象类和接口类

不打扰是莪最后的温柔 提交于 2019-11-26 11:53:17
zxq547 python定义接口继承类invalid syntax解决办法 1 2 3 4 5 6 7 class s_all(metaclass = abc.ABCMeta): #python2.7用此方法定义接口继承 # __metaclass__ = abc.ABCMeta @abc .abstractmethod def read( self ): pass pyhton2.7会报错,此方法用于python3+pyhton2.7应用次方法定义 1 2 3 4 5 6 7 class s_all(): #python2.7用此方法定义接口继承 __metaclass__ = abc.ABCMeta @abc .abstractmethod def read( self ): pass Python之抽象类、抽象方法 抽象类中只能有抽象方法,子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。 Python2 class CopyBase(object): def save(self): raise NotImplementedError class CopyPaper(CopyBase): def __init__(self): pass def save(self): print("copy paper") class CopyQuestion