面对对象-class类(属性和方法)

python基础篇-类和对象&属性和方法&类和继承 类和对象&属性和方法&类和继承 阅读详情

目录

一,类和对象

二,属性

三,方法

1,方法的声明语法

2,入口方法

3,构造方法

5.1,重载方法

4,递归方法

5,静态方法


        面向对象编程(Object-Oriented Programming,OOP)是一种编程方法,其中程序是由对象组成的。面向对象的编程的核心思想是,将程序中的实体、数据和功能抽象为单独的对象,并在这些对象之间建立联系。

        面向对象方法的主要方面包括:

  • 继承:子类继承父类的属性和方法,并可以添加新的属性和方法。
  • 封装:对象的内部状态和行为被隐藏在对象内部,只能通过公共的方法访问。
  • 多态:同一个方法可以有不同的实现,根据不同的对象类型而有不同的行为。
  • 抽象:通过抽象类和接口来定义对象的公共行为,但不实现该行为。
  • 关联:对象之间的关系,例如一对多,多对一等。

        这些方面可以使程序更易于维护、扩展和重用,并使代码更具可读性和清晰度。面向对象的方法已经成为现代编程的重要方法,并应用于各种领域,如桌面应用程序、移动应用程序、游戏等

一,类和对象

        类就是一块模板,确定对象将会拥有的特征(属性)和行为(方法)。具有相同属性和方法的一组对象的集合,就是类,类是抽象的。声明类、属性、方法、初始化块可以多个、静态块也可以多个。

二,属性

        访问修饰符:public 公共的 private 私有的 protected 保护 默认 friendly

访问修饰符本类同包下类子类其他实例对象
private int id;√
默认(friendly、default) int id;√√
protected int id;√√√
public int id;√√√√

示例代码解释如下:

public class Csdn0713 {
    public class C2 {
        /*属性 成员变量*/
        public int id; //全局
        private final int num = 18;//私有
        protected String addr = "郑州";//受保护
        String name = "jack";//友好,默认
        /* 静态属性 类变量 */
        public static int sid = 3;
        //静态 static 只分配一次内存
        /*常量 不能修改只能使用*/
        /*常量 不能修改只能使用*/
    public static void main(String[] args) {

        }
    }
}

三,方法

1,方法的声明语法

访问修饰符 返回值类型 方法名(参数) {

方法体;//执行语句

}

方法体:
        在方法声明后的一对大括号以及中间的内容就称之为方法的方法体,方法体的内容包括局部变量的声明和Java语句

访问修饰符:

        当前我们的访问修饰符常用的一般为public,private

  • public是公共的,被public所修饰的成员可以在任何类中都能被访问到。
  • private是私有的,即只能在当前类中被访问到,它的作用域最小

 返回值

  • 表示方法要返回的数据类型,int ,double,String等等,
  • 返回值要和定义的返回值类型一样。
  • 方法的返回值是通过return语句获得的。
  • 对于不带返回值的方法,应用void表示无返回值。

 参数:

        参数列可以是空的,即无参方法,也可以有多个参数,定义的时候必须声明类型。不管有没有参数,方法名后的括号都必须要有。

 方法的结束:

        方法执行时碰到return后就结束了,return之后的所有语句都不会执行。

2,入口方法

public static void main(String[] args){

}

        一个类中只能写个入口方法,代表当前类可以独立运行。方法的参数String[] 参数。

3,构造方法

        方法和类名一致,没有返回值,不使用void,此方法不直接通过实例对象调用,此方法在实例化对 象时new 的时候就开始执行构造方法,在构造方法的第一行代码,默认是super();

注意:如果在编写类的时候编写了构造方法,建议再编写无参构造方法,如果没有编写构造方法,默认给一 个无参的构造方法。

  •  编写一个类,默认添加个无参空构造方法,如果编写构造方法,不再添加无参空构造方法
  •  声明类中,方法名和类名一致
  •  构造方法不允许有返回值
  •  构造方法不允许使用void
  •  构造方法在实例化执行,不能通过对象调用执行
  •  建议编写类的时候,在编写构造方法,再编写一个无参构造方法
  •  构造方法功能:在类实例化时,进行对实例对象初始化

User.java

public class User{

    public User(){
    
    }
}

5.1,重载方法

        在一个类,或多个继承关系类中,存在方法名称一样,方法参数不一样,此类方法重载方法,称为构造方法重载。调用方法时,通过传递给它们的不同个数和类型的参数以及传入参数的顺序来决定具体使用哪个方法

注意:

  • 方法名 : 必须相同
  • 方法的修饰符可以不相同
  • main 方法也可以被重载
  • 形参列表: 必须不同(形参类型或个数或顺序 ,至少有一样不同 ,参数名无要求)
  • 返回类型: 无要求 

示例代码如下:

static int sum() {
return 0;
}
static int sum(int a, int b) {
return a + b;
}
static double sum(float a, float b) {
return a + b;
}
static double sum(double a, double b) {
return a + b;
}

4,递归方法

        在方法内部,再次调用本方法,此方法就是递归方法。递归,相当于数学上的 “数学归纳法”, 有一个起始条件, 然后有一个递推公式. 例如, 我们求 N! 起始条件: N = 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件.

        递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! => N * (N-1)

示例代码如下:

public class Csdn0714 {
    //递归方法
    public int jiecheng(int n) {
        if (n > 1) {
            return n * jiecheng(n - 1);
        }
        return 1;
    }
    public static void main(String[] args) {
        Csdn0714 a=new Csdn0714();
        System.out.println(a.jiecheng(5));
    }
}

输出结果如下:

5,静态方法

        静态方法,调用执行不用全例化,可以根据类名.方法名()直接调用执行。 在方法内部可以直接调用静态方法,直接使用静态成员 类变量。

示例代码如下:

public class Csdn0714 {
    //静态方法
    public static void show() {
        System.out.println("show...");
    }
    //非静态方法
    public int re(int i){
        return i*i;
    }

    public static void main(String[] args) {
        //调用静态方法
        System.out.println("------静态方法调用------");
        show();
        //调用非静态方法(需要实例化)
        System.out.println("------非静态方法调用------");
        Csdn0714 c=new Csdn0714();
        System.out.println(c.re(5));
    }
}

输出结果如下:

 

定义class中的属性和方法 关于python class中的类属性 类体中,函数之外定义的变量—称为类变量; 类体中,函数内部:以“self.变量名”的方式定义的变量—称为实例属性或实例变量; 类体中,所有函数内部:以“变量名=变量值”的方式定义的变量—称为局部变量。 属性的权限关系 定义的类只有进行实例化,也就是使用该类创建对象之后,才能得到利用。 总的来说,实例化后的类对象可以执行以下操作: 访问或修... 阅读详情

相关推荐

day23 - class面向对象、对象和类、super、constructor、静态属性和方法、私有属性和方法、ES6 Class类

本文介绍了JavaScript中的面向对象编程思想,重点讲解了类和对象的概念及实现方式,并提供了实际应用案例。 摘要要点: 编程思想对比:面向过程(POP)与面向对象(OOP)的优缺点比较,面向对象更适合复杂系统开发。 核心概念:类作为模板,对象作为实例,包含属性和方法。 ES6类特性:包括构造函数、实例方法、静态方法、继承机制和super关键字的使用。 新增特性:私有字段/方法(#前缀)、静态字段/方法(static关键字)等ES2022+特性。 实际应用:通过选项卡和用户登录案例展示类继承和功能扩展的实

u010544438的博客 91

面向对象----类(class)

1、声明类的语法格式: 【修饰符】 class 类名{ 成员列表 } (1)【修饰符】后面一一讲解,比如:public(公共的)等,也可以缺省/省略。 如果一个类前面加了public,就要求.java源源文件名 必须 与这个类名一致。 意思就是说:public class TestClass{..} 这个类必须在 TestClass.java文件中,否则就报错。 换句话说,一个.java源文件中,不能同时出现两个pub...

qq_59378215的博客 1493

城市规划师必备:ArcMap里用这个免费工具,5步完成建筑群通风廊道分析

本文介绍了城市规划中利用ArcMap进行建筑群通风廊道分析的高效方法,重点讲解了迎风面投影指数(FAI)的应用。通过5个步骤,从数据准备到规划应用,帮助规划师快速评估城市通风潜力,优化建筑布局,提升城市风环境质量。

weixin_26800111的博客 412

python面向对象-定义类(class)

本文详细介绍了类的定义、类的基本结构、类的实例化、类属性、实例属性、实例方法、类方法、静态方法、私有属性和方法、类的继承、类中的多态、super的使用方式、抽象类。

爆笑蛙的博客 1万+

解决Android UVCCamera stopPreview 报错 崩溃 闪退 问题

在使用libuvccamera库的UVCCamera时,经常在调用stopPreview关闭预览的时候,app直接崩溃闪退了,经过综合各种修改源码的方案,已解决这个问题,以下请参考: 首先找到android_usbfs.c,linux_usbfs.c两个原文件,在两个文件中都可以找到这段代码,按如下示例修改: 修改前: for (i = 0; i < num_urbs; i++) { if (urb == tpriv->iso_urbs[i]) { urb_idx = i + 1;

hanye2020的博客 3576

5分钟搞定!用Keil MDK将STM32F103C8T6工程无缝迁移到ZET6开发板

本文详细介绍了如何在Keil MDK环境下快速将STM32F103C8T6工程迁移到ZET6开发板,涵盖硬件差异对比、工程配置调整、外设适配及编译排错等关键步骤,帮助开发者5分钟内完成工程移植,大幅提升开发效率。

weixin_30879169的博客 407

ES6中的class类内容详解

ES6中的class类 认识class定义类 ​ 我们会发现,按照前面的构造函数形式创建 类,不仅仅和编写普通的函数过于相似,而且代码并不容易理解。 在ES6(ECMAScript2015)新的标准中使用了class关键字来直接定义类;但是类本质上依然是前面所讲的构造函数、原型链的语法糖而已;所以学好了前面的构造函数、原型链更有利于我们理解类的概念和继承关系; ​ 那么,如何使用class来定义一个类呢?–可以使用两种方式来声明类:类声明和类表达式; class Person{ //类声明 } c

酒客的博客 2146

别再为reg2icg的setup违例头疼了!手把手教你用ICC2/Innovus这3招搞定(附实战数据对比)

本文详细介绍了在ICC2/Innovus中解决reg2icg的setup违例的三种高效方法,包括早期时钟树预估、精准控制时钟延迟与门控检查以及ICG专用优化选项组合。通过实战数据对比,展示了不同策略的效果差异,帮助工程师快速优化时序路径,提升芯片性能。

weixin_42569329的博客 404

第五章 面向对象-1.class类

1)了解面向对象 类 对象 属性 方法? 2)掌握声明类,使用类,导入import 类,实例化对象。 3)掌握入口方法编写和执行,传参 4)方法 入口方法 构造方法 静态方法 重载 递归 装箱 拆箱 静态导入

qq_52963857的博客 214

Vue3实战:企业级应用集成钉钉扫码登录全流程解析

本文详细解析了在Vue3企业级应用中集成钉钉扫码登录的全流程。从钉钉开放平台应用创建与配置,到Vue3前端如何优雅地嵌入并管理扫码组件,再到后端如何安全地处理OAuth 2.0授权码以换取用户信息并完成登录,提供了完整的实战代码与避坑指南。该方案能有效实现安全便捷的单点登录,统一企业身份认证。

weixin_29019241的博客 289

CST局部网格加密实战:从基础设置到Meshgroup高效管理

本文详细解析了CST电磁仿真软件中的局部网格加密技术,重点介绍Meshgroup功能的高效管理方法。通过平行板电容等实战案例,阐述从基础设置到多级加密策略的完整流程,帮助用户精准提升关键区域仿真精度,同时优化计算资源使用效率。

grafana6viz的博客 694

面向对象,class类,声明类,属性方法,掌握声明类,使用类,导入import 类,实例化对象,继承

java基础,面向对象,class类,声明类,属性方法,掌握声明类,使用类,导入import 类,实例化对象,继承

qq_52963857的博客 230

【保姆级教程】YOLOv8_Pose多目标+关键点检测:训练自己的数据集

【保姆级教程】YOLOv8_Pose多目标+关键点检测:训练自己的数据集

m0_51579041的博客 1万+

java中类和函数、方法、属性,以及对象的区别

1 类和函数、方法 类的定义,在java中是用class关键字定义的一个结构,类中可以定义函数以及定义变量。 当我们使用java封装了一个实体类时,该实体类中,有一些变量和函数。此时在该类中的函数,我们可以称之为该实体类的方法了,该实体类中的变量,我们可以称之为该实体类的属性。我们这里以一个Person实体类为例。 public class Person { private String ...

麦田里的守望者 5674

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python中采用class与pass灵活创建类并补充添加属性及方法、以及查看类和对象属性和方法的方式和程序举例

本文介绍了采用class和pass灵活创建类,以及后续补充添加类的属性和方法的具体操作办法和程序举例,深化对动态创建类的方法认识。并程序举例介绍了查看类属性和方法、查看对象的属性和方法、查看实例属性的具体过程。助于对类的结构、对象的结构等的随时查看和检查。

qq_18937049的博客 1279

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Class类和Class对象

Class类也是一种类,一种特殊的类。

qq_43320218的博客 1183

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java中的类、对象、属性和方法之间的关系

基本属性 首先我们需要了解JAVA面向对象中有几点需要注意的: 类 Class 对象 Object 方法 Method 属性 Field Class 类 类是什么?可以把类理解为一个系。如动物、植物、建筑等。这个概念是抽象的,是没有实体的。 但一个系下又是拥有具体的一个事物。如: 也就是说类是用于被实例化的。 ...

qq_24693613的博客 3912

Java中每个类都有个Class对象,那Class类有自己的Class对象吗?

Java 的 Class 类是一个强大的工具,它不仅为每个类提供了元数据,而且自身也遵循了这一规则,拥有自己的 Class 对象。下次当你在使用反射或者处理类相关的操作时,不妨想一想这个 Class 类的 Class 对象,它可能会给你带来新的编程灵感。这个 Class 对象,就像是每个类的身份证,记录着类的名字、属性、方法等信息。这意味着,Class 类自身也是一个类,按照 Java 的规则,它也应该有一个 Class 对象。是的,你没看错,Class 类有一个自己的 Class 对象,它就是。

龚小帅的博客 894

Class类(基本介绍、常用方法)

从类图来看,Class就是一个类,和其他类是一样的,只是这个类的使用方法和功能有点特殊性,仅此而已。类加载器,也就是ClassLoader,里面有个方法叫loadClass(),通过这个方法来完成类加载,生成某个类对应的Class对象。如果加载的类不是同一个那Class肯定就不同了。验证一下我们可以创建一个Dog类这里肯定跟上面是不相同了,Dog类和Cat类已经不是同一个类,也就是说Dog类在堆内存中也会有一个Class对象,cls1和cls2对应的是同一个。......

while(true){ study } 1万+

Java中的class类和对象总结(思维导图)

概念: 对象是一个实际的个体 , class 类是具有相同属性的一类个体的集合 思维导图: 2. 定义声明对象的两种方法: public class T1{ public static void main{ // 第一种 Person jack; jack = new Person(); ----------------------- //第二种 Person jack = new Person(); } } 定义类对象(方法): public class Perso.

赵博林 4664

Class(类)

前言 ES6引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 但是JS 中并没有一个真正的 class 原始类型, class 仅仅只是对原型对象运用语法糖。所以,只有理解如何使用原型对象实现类和类继承,才能真正地用好 class。 基本语法 class Person{ constructor(name,age){ this.name = name; this.age = age; } Say(){

JOKEthel的博客 5664

JS中Class类的静态属性和静态方法

一、类的两个概念: 1、类自身; 2、类的实例对象; 总的来说:静态的是指向类自身,而不是指向实例对象,主要是归属不同,这是静态属性,静态方法的核心。 二、对象的两个部分 1、属性 分为:实例属性、静态属性(类属性)、只读属性 2、方法 分为:实例方法、静态方法(类方法)...

王春燕的博客 7141

8.1 Python 类 对象 属性 方法

8.1 Python 类 对象 属性 方法 8.1.1 什么是类? 类的中文释义:许多相似或相同事物的综合。这些事物各不相同,但具有一些共同的特征或行为。 生活中的类 植物类:百合花、玫瑰花、栀子花。 水果类:苹果、橘子、西瓜。 车:面包车、轿车、跑车。 Python中的类 整数类:1,2,3。 浮点数类:1.1,2.2,3.3。 1、2、3这些数据都属于整数(int)类,虽然值各不一样,但都有能进行加减运算的相同点。 ‘1’、‘2’、'3’这些数据都属于字符串(str)类,虽然值各不一样,但都有能进行拼接

weixin_63986098的博客 3046

得到Class类的方法及所有类型的Class对象

一个Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void/[])的有关信息。c)已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法forName()获取,可能抛出 ClassNotFoundException。➢Class类是Reflection的根源,针对任何你想动态加载、运行的类,唯有先获得相应的Class对象。➢class: 外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类。

2503_92462323的博客 997

js中的class类

这是es6的新特性,用于实现面向对象的编程 1.class类的创建 创建一个class类 class myClass{ //构造器,默认为空的构造器 //当class在被new时就会调用构造器 //相当于function //function myClass(name,age){ // this.name=name // this.age=age //} constructor...

程序员徐小白的博客 1万+
上一篇: JDK,JRE,JVM的区别与联系
下一篇: 拆箱与装箱
涵冰...
博客等级 码龄4年 2438粉丝 243原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值