面对对象-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

ROC-RK3588S-PC 刷机 安装Android系统

rk3588刷机,装系统

Wjz_www的博客 4834

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

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

爆笑蛙的博客 1万+

步进电机驱动算法——梯形加减速算法

目录步进电机梯形加减速梯形加减速算法原理分析算法实现 步进电机梯形加减速 电机的控制方式一般分为开环控制与闭环控制两种控制方式,其中开环控制原理框图如下: 这种种控制方式的特点是:控制简单、实现容易、价格较低,这种开环控制方式,负载位置对控制电路没有反馈。 对于步进电机,控制脉冲的输入并不依赖于转子的位置,而是按一固定的规律发出控制脉冲,如果励磁变化太快,电机不能移动到新的位置,那么实际负载位置与理想位置就会产生一个偏差,就有可能出现失步或者过冲现象,所以需要使用加减速算法。 梯形加减速算法,S加减速算法等

aaa376070331的博客 3万+

STM32串口调试踩坑记:HAL_UART_ErrorCallback里不先解锁,你的中断接收就废了

本文深入分析了STM32串口调试中HAL_UART_ErrorCallback的锁机制陷阱,指出在错误回调中不先解锁会导致中断接收失效的问题。通过解析HAL库源码,提出了正确的错误处理实现方法,并分享了预防措施与最佳实践,帮助开发者提升串口通信的可靠性。

weixin_33733810的博客 512

ES6中的class类内容详解

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

酒客的博客 2146

2023年第二十届五一数学建模竞赛C题:“双碳”目标下低碳建筑研究-思路详解与代码答案

2023年第二十届五一数学建模竞赛C题:“双碳”目标下低碳建筑研究-思路详解与代码答案

lichensun的博客 1万+

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

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

qq_52963857的博客 214

华为AC外置Portal认证方案配置步骤指南

华为AC外置Portal认证方案配置步骤指南

m0_46129105的博客 7665

计算机视觉之ResNet

RestNet是2015年由微软团队提出的,在当时获得分类任务,目标检测,图像分割第一名。该论文的四位作者何恺明、张祥雨、任少卿和孙剑如今在人工智能领域里都是响当当的名字,当时他们都是微软亚研的一员。实验结果显示,残差网络更容易优化,并且加深网络层数有助于提高正确率。在ImageNet上使用152层的残差网络(VGG net的8倍深度,但残差网络复杂度更低)。对这些网络使用集成方法实现了3.75%的错误率。获得了ILSVRC 2015竞赛的第一名。原文链接这是一篇计算机视觉领域的经典论文。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2万+

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

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

qq_52963857的博客 230

FPGA实现DDR接口

verilog// DDR2控制器状态机// 初始化序列// 发出初始化命令endendendend// 自动预充电end// 其他状态...endcaseendend。

whm128的博客 998

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

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

麦田里的守望者 5674

github创建账号第一步始终出错

github创建账号总结:第一次注册GitHub,填好用户名邮箱密码后进入下一步就卡在哪里,上面还提示Unable to verify your captcha response等,进入网址的解决办法以及下载其他的浏览器也无法解决,用手机浏览器抱着试一试的心态竟然成功了,分享给大家。手机下载谷歌浏览器,进入GitHub正常注册,能向下继续,邮箱验证完以后再用电脑登陆就ok啦

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 4373

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

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

qq_18937049的博客 1279

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Class类和Class对象

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

qq_43320218的博客 1183

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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、付费专栏及课程。

余额充值