第二阶段 第一章 面向对象

2024-04-26 20:52

本文主要是介绍第二阶段 第一章 面向对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 类

1.1 类的成员方法

1.1.1 类的成员

  • 设计表格,称之为:设计类(class)
  • 打印表格,称之为:创建对象
  • 填写表格,称之为:对象属性赋值
# 1.设计类(类比生活中: 设计一张登记表)
class Student:	name = None				#记录学生姓名gender = None			#记录学生性别nationality = None		#记录学生国籍native_place = None		#记学生籍贯age = None# 2.创建对象(类比生活中: 打印一张登记表)
stu_1 = Student()# 3.对象属性赋值(类比生活中:填写表单)
stu_1.name = "林俊杰"
stu_1.gender = "男"
stu_1.nationality = "中国"
stu_1.native_place = "山东省"
stu_1.age = 31# 4. 获取对象中记录的信息
print(stu_1.name)
print(stu_1.gender)
print(stu_1.nationality)
print(stu_1.native_place)
print(stu_1.age)
林俊杰
男
中国
山东省
31

1.1.2 类的方法

# 定义一个带有成员方法的类
class Student:name = Nonedef say_hi(self):print(f"大家好呀,我是{self.name},欢迎大家多多关照")def say_hi2(self, msg):print(f"大家好呀,我是{self.name},{msg}")stu = Student()
stu.name = "周杰伦"
stu.say_hi()
stu.say_hi2("哎呦不错哟")stu2 = Student()
stu2.name = "林俊杰"
stu2.say_hi("小伙子我看好你")

1.2 类和对象

# 设计一个闹钟类
class Clock:id = Noneprice = Nonedef ring(self):import winsoundwinsound.Beep(2000, 3000) #2000表示频率,3000表示持续时间(毫秒)# 构建2个闹钟对象并让其工作
clock1 = Clock()
clock1.id = "003032"
clock1.price = 19.99
print(f"闹钟ID:{clock1.id},价格:{clock1.price}")
clock1.ring()clock2 = Clock()
clock2.id = "003033"
clock2.price = 21.99
print(f"闹钟ID:{clock1.id},价格:{clock1.price}")
clock2.ring()

1.3 构造方法__init__

# 构造方法的名称:__init__
class Student:	def __init__(self, name, age, tel):self.name = nameself.age = ageself.tel = telprint("Student类创建了一个类对象")
stu = Student("李明", 12, 12345)
print(self.name)
print(self.age)
print(self.tel)

# 构造方法的名称:__init__
class Student:	name = Noneage - Nonetel = Nonedef __init__(self, name, age, tel):self.name = nameself.age = ageself.tel = telprint("Student类创建了一个类对象")
stu = Student("李明", 12, 12345)
print(self.name)
print(self.age)
print(self.tel)

1.4 案例 学生信息录入

class Student:def __init__(self, name, age, address):self.name = nameself.age = ageself.address = address
stu_list = []
count = input()
for i in range(1, count + 1):print(f"当前录入第{i}位学生信息,总共需录入{count}位学生信息")stu_name = input("请输入学生姓名:")stu_age = input("请输入学生年龄:")stu_add = input("请输入学生地址:")stu = Student(stu_name, stu_age, stu_add)stu_list.append(stu)stu_data = stu_list[i - 1]print(f"学生1信息录入完成,信息为:【学生姓名:{stu_data.name},年龄:{stu_data.age},地址:{stu_data.address}】")

1.5 魔术方法

1.5.1 __str__

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):return f"Student类对象,name:{self.name},age:{self.age}"stu = Student("李明", 12)
print(stu)
print(str(stu))

1.5.2 __lt__

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __lt__(self, other):return self.age < other.agestu1 = Student("李明", 12)
stu2 = Student("林俊杰", 14)
print(stu1 < stu2)

1.5.3 __le__

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __le__(self, other):return self.age <= other.agestu1 = Student("李明", 14)
stu2 = Student("林俊杰", 12)
print(stu1 >= stu2)

1.5.4 __eq__

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __eq__(self, other):return self.age <= other.agestu1 = Student("李明", 14)
stu2 = Student("林俊杰", 14)
print(stu1 == stu2)

这篇关于第二阶段 第一章 面向对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/938628

相关文章

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu

ffmpeg面向对象-待定

1.常用对象 rtsp拉流第一步都是avformat_open_input,其入参可以看下怎么用: AVFormatContext *fmt_ctx = NULL;result = avformat_open_input(&fmt_ctx, input_filename, NULL, NULL); 其中fmt_ctx 如何分配内存的?如下 int avformat_open_input(

chapter06 面向对象基础 知识点Note

文章目录 前言类的设计 属性和行为对象的内存解析 (堆 栈 方法区)类的成员之一 变量(属性) field类的成员之二 方法 method对象数组方法重载 overload可变个数的形参 语法糖方法的值传递机制递归关键字package importMVC设计模式import导入面向对象特征之一 封装类的成员之三 构造器JavaBeanUML类图 前言 ` 面向对象封装 面向

【JVM】JVM栈帧中的动态链接 与 Java的面向对象特性--多态

栈帧 每一次方法调用都会有一个对应的栈帧被压入栈(虚拟机栈)中,每一个方法调用结束后,都会有一个栈帧被弹出。 每个栈帧中包括:局部变量表、操作数栈、动态链接、方法返回地址。 JavaGuide:Java内存区域详解(重点) 动态链接 动态链接:指向运行时常量池中该栈帧所属方法的引用。 多态 多态允许不同类的对象对同一消息做出响应,但表现出不同的行为(即方法的多样性)。 多态

【网络安全】服务基础第二阶段——第二节:Linux系统管理基础----Linux统计,高阶命令

目录 一、Linux高阶命令 1.1 管道符的基本原理 1.2 重定向 1.2.1 输出重定向 1.2.2 输入重定向 1.2.3 wc命令基本用法 1.3 别名 1.3.1 which命令基本语法 1.3.2 alias命令基本语法 1.4 压缩归档tar 1.4.1 第一种:gzip压缩 1.4.2 第二种:bzip压缩 1.5 tar命令 二、VIM编辑器使用

java基础总结15-面向对象11(抽象类)

下面通过一下的小程序深入理解抽象类 因此在类Animal里面只需要定义这个enjoy()方法就可以了,使用abstract关键字把enjoy()方法定义成一个抽象方法,定义如下:public abstract void enjoy();   从某种意义上来说,抽象方法就是被用来重写的,所以在父类声明的抽象方法一定要在子类里面重写。如果真的不想在子类里面重写这个方法,那么可以再在子类里

java基础总结14-面向对象10(多态)

面向对象最核心的机制——动态绑定,也叫多态 1 通过下面的例子理解动态绑定,即多态 package javastudy.summary;class Animal {/*** 声明一个私有的成员变量name。*/private String name;/*** 在Animal类自定义的构造方法* @param name*/Animal(String name) {this.name = n

java基础总结13-面向对象9(对象转型)

对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型。转型的意思是:如把float类型转成int类型,把double类型转成float类型,把long类型转成int类型,这些都叫转型。把一种形式转成另外一种形式就叫转型。除了基础数据类型的转型之外(基础数据类型的转型:大的可以转成小的,小的也可以转成大的。),对象领域里面也有对象之

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

java基础总结11-面向对象7(super关键字)

在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。 1 super关键字测试 package cn.galc.test;/*** 父类* @autho