类与对象

C++类与对象上 / 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体注意类定义结束时后面分号不能省略类体中内容称为类的成员:类中的变量称为类的属性或成员变量,类中的函数称为类的方法或者成员函数1.声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理2.类声明放在.h文件中,成员函数定义放在.cpp文件中,注:成员函数名前需要加类名::一般情况下,更期望采用第二种方式。 阅读详情

封装:是一种信息隐藏技术

利用抽象数据类型将数据和基于数据的操作封装在一起;
用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的;
封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节。

继承:基于已有的类产生新类的机制

是指新的类可以获得已有类(称超类或父类)的属性和行为,称新类为已有类的子类(也称为派生类)
在继承过程中子类继承了超类的特性,包括方法和实例变量;

  • 单继承:一个子类只有单一的直接超类。
  • 多继承:一个子类可以有一个以上的直接超类。

数据成员声明

  • public、protected、private为访问控制符。
  • static指明这是一个静态成员变量(类变量)。
  • fianl指明变量的值不能被修改。
  • transient指明变量是不需要序列化的。
  • volatile指明变量是一个共享变量。

实例变量

  • 没有static修饰的变量(数据成员)成为实例变量
  • 存储所有实例都需要的属性,不同的实例的属性值可能不相同

类变量(静态变量)

  • 用static修饰
  • 在整个类中只有一个值
  • 类初始化的同时被赋值
  • 适用的情况
    • 类中所有对象都相同的属性。
    • 经常需要共享的数据
    • 系统中用到的一些常量值

方法声明

  • public、protected、private控制访问权限。
  • static 指明这是一个类方法(静态方法)
  • final指明这是一个终结方法
  • abstract指明这是一个抽象方法
  • native用来集成java代码和其它语言的代码
  • syschronized用来控制多个并发线程对共享数据的访问

实例方法

  • 表示特定对象的行为
  • 声明时前面不加static修饰符
  • 参数传递:
    • 值传递:参数类型为基本数据类型时
    • 引用传递:参数类型为对象类型或者数组时

类方法:

  • 也称为静态方法,声明时前面需要加static修饰。
  • 不能被声明为抽象的
  • 可以类名直接调用,也可以类名实例调用。

可变长参数

  • 可变成参数使用省略号表示,其实质是数组。
    例如,“String …s” 表示“String[]s”

  • 对于具有可变长参数的方法,传递可变参数的实际参数可以是以0个到多个对象

    可变参数的实际上是利用数组实现的,具体可以参考下边的例子

public class Varargs {
	public void varagsMethod(List<String>... values) {
		Object[] array = values;
		List<Integer> list = (List<Integer>) array[0];
		list.add(1);
	}

	public void useVaragsMethod() {
		List<String> list = new ArrayList<String>();
		list.add("Hello");
		// Type safety: A generic array of List<String> is created for a varargs
		// parameter
		varagsMethod(list);
		String str = list.get(1);
	}

	public static void main(String[] args) {
		System.out.println("Varargs");
	}
}

反编译之后

public class Varargs
{

    public Varargs()
    {
    }

    public transient void varagsMethod(List values[])
    {
        Object array[] = values;
        List list = (List)array[0];
        list.add(Integer.valueOf(1));
    }

    public void useVaragsMethod()
    {
        List list = new ArrayList();
        list.add("Hello");
        varagsMethod(new List[] {
            list
        });
        String str = (String)list.get(1);
    }

    public static void main(String args[])
    {
        System.out.println("Varargs");
    }
}

包与目录

  • 包名就是文件夹名,即目录名;
  • 目录名并不一定是包名。
  • Java自动引入Java.lang包

类成员的访问权限

  • public公有:可以被其它任何方法访问,前提是对类成员所属的类有访问权限。
  • protected 只能被同一类及其子类的方法访问
  • private 只可被同一类的方法访问
  • default 默认 仅允许同一个包内的访问,又被称为包访问权限

this 关键字

  • 如果方法内的局部变量(包括形参)名与实例变量名相同,则方法体内部访问实
    例变量时需要this关键字

对象的自动回收

  • 无用对象
  • 离开iale作用域的对象
  • 无引用指向对象
  • Java运行时系统通过垃圾收集器周期性的释放无用对象所使用的内存
  • Java运行时系统会在对象进行自动垃圾回收前,自动调用对象的finalize()方法
    垃圾回收器
  • 自动扫描对象的动态内存区,对不再使用的对象做上标记以进行垃圾回收
    作为一个后台线程运行,通常在系统空闲时异步地执行

finalize()方法

  • 在类java.lang.Object中声明,因此Java中的每一个类都有该方法:
    protectetd voud finalize() throw throwable
    用于释放资源

  • 类可以覆盖(重写)finalize()方法。
    finalize()方法有可能在任何时候以任何次序执行

覆盖toSting()方法

  • toString()方法 将对象内容转化为字符串对象
    下面的两行代码等价
System.out.prientln(anAccount);
System.out.println(anAccount.toString());

如果需要特殊的转化功能,则需要自己覆盖toString()方法:

  • 必须被声明为public;
  • 返回类型为String;
  • 方法的名称必须为toString,且没有参数
  • 在方法体中不要使用输出方法System.out.prientln();

DecimalFormat类

DecimalFormat类在Java.text包中。
在toString()方法中使用DecimalFormat类的实例方法format对数据进行格式化。

个人信息保护合规审计人员(中级)能力测试试卷 本文是关于个人信息保护合规考试的试题解析,内容涵盖《个人信息保护法》相关规定。试卷包含单选题、多选题、判断题、简答题和案例分析题五种题型,总分100分,考试时间120分钟。试题重点考察个人信息处理的基本原则、敏感个人信息处理要求、合规审计流程、个人信息保护影响评估等内容。通过案例分析题详细解析了人脸识别登录、数据共享、跨境传输等场景下的合规要求。参考答案均严格依据《个人信息保护法》等法律法规,为个人信息处理活动提供了明确的合规指引。 阅读详情

相关推荐

代码生成 | 安时积分法模型搭建

安时积分法是电池电量计量最基础的方法,今天我们用simulink建模的方式做一个安时积分模型,从而更好地理解安时积分的思想也掌握建模的基础操 ​新建文件 打开MATLAB启动simulink新建一个模型文件 定义变量 和手写代码一样,先定义几个后面要用到的变量,在simulink建模时新建变量用Data Store Memory模块。双击填入要定义的变量名,然后在signal attributes赋初值 如此方法新建四个变量current(电流)初值1000mA、tatol_cap(总容量

ningvay的博客 1万+

java 数据类型的基本要点

对于刚接触java语言的我来说,因为与c语言的数据类型还有较大出入,所以在网上找到一些资料然后整合了一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 一、数据类型: 1.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范...

qq_38361756的博客 202

AutoCAD Plant 3D自定义零件库实战:手把手教你用Python创建参数化槽式三通

本文详细介绍了如何利用Python脚本在AutoCAD Plant 3D中创建参数化槽式三通组件,从API原理到实战开发,帮助用户构建高效的自定义零件库。通过Python装饰器系统控制零件属性和行为,实现几何建模、参数管理和规格编辑器集成,提升工业管道设计的标准化和效率。

weixin_28267011的博客 336

(C++)类与对象

一、类与对象的思想 面向对象的特点:封装、继承、多态 面向对象编程的特点: (1)易维护:可读性高,即使改变了需求,由于继承的存在,只需要对局部模块进行修改,维护起来非常方便,维护的成本也比较低。 (2)质量高:可以重用以前项目中已经被测试过的类,使系统满足业务需求从而具有更高的质量 (3)效率高:在软件开发时,根据设计的需求要对现实世界的事物进行抽象,从而产生了类 (4)易扩展:由于继承、封装、多态的特性,可设计出高内聚、低耦合的系统结构,使系统更加灵活、更容易扩展,而且成本也比较低。 1、

weixin_53812805的博客 1万+

Python爬虫实战:巧用HEAD请求和Cookie令牌绕过沃尔玛反爬(附完整代码)

本文详细介绍了如何利用Python爬虫技术,通过HEAD请求和Cookie令牌绕过沃尔玛的反爬机制。文章深入解析了人机验证系统的运作原理,并提供了完整的工程化实现代码,包括令牌池设计、高并发架构和异常处理策略,帮助开发者高效采集电商数据。

weixin_29046035的博客 1014

JAVA + 海康威视SDK + FFmpeg+ SRS 实现海康威视摄像头二次开发

海康威视SDK接入方案摘要 本文介绍了使用海康威视官方SDK开发物联网平台摄像头接入功能的完整方案。系统采用Java后端集成HCNetSDK控制摄像头,通过FFmpeg将RTSP流转为RTMP推送到SRS流媒体服务器,前端基于HTTP-FLV协议实现视频播放。文章详细说明了开发准备工作,包括SDK下载、SRS部署、FFmpeg安装等关键步骤,并提供了数据库表设计和接口定义。核心部分展示了如何集成海康SDK,包括提取必要代码、加载DLL文件、配置打包插件等具体实现细节,最终形成了一套支持实时预览、回放和下载的

2401_83057947的博客 2267

Java类与对象

此文章为大家全方位的讲解了什么是Java的类与对象,从类与对象是什么到类与对象如何创建如何实例化以及使用。并且为大家介绍了类的成员有成员变量、成员方法。如何实现private的封装以及如何使用getter和setter方法还有我们的构造方法和代码块,最后最后在文章的结尾教给了大家如何通过电脑自己实现自己生成private的封装,setter和getter的定义以及toSring的定义方法。

xinhang10的博客 4371

VSCode配置ClangFormat:让C++大括号乖乖不换行(附常见样式对比)

本文详细介绍了如何在VSCode中配置ClangFormat,实现C++代码大括号不换行的格式化风格。通过对比Attach、Allman等主流大括号样式,并提供从快速设置到项目级配置的完整指南,帮助开发者打造统一、高效的代码格式化工作流,提升团队协作效率。

weixin_28835551的博客 219

C++初阶学习第三弹——类与对象(上)——初始类与对象

C++类与对象部分超详解!!!(新手可入)(上)

2301_80220607的博客 5992

数据分享|2000-2021年全国各城市风速数据(逐日、逐月、逐年)

而后,将每日的csv文件进行展点,再投影,采用反距离权重法对每日的数据进行插值。:美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),网址为:https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/该数据是通过风速平均值插值得来,由于插值的方式与各种处理参数的不同,会导致该数据与其它风速数据不同,数据仅供个人学习使用哦。如果在论文中使用该数据,数据来源请写上面的原始数据来源,处理方法请写上面的处理方式!

J_Giser的博客 1781

4、文化遗产数字记录的伦理框架构建

本文探讨了在数字技术快速发展的背景下,如何构建一个伦理框架以指导文化遗产的数字记录工作。文章分析了遗产保护的重要性以及当前面临的挑战,包括气候变化、全球化和技术变革等。同时,结合国际古迹遗址理事会(ICOMOS)的伦理原则和加拿大遗产专业人员协会(CAHP)的行为准则,提出了六个核心伦理类别,并讨论了其在实践中的应用。文章强调,伦理框架不仅有助于提高数字记录的质量和可持续性,还能促进专家合作、保护社区利益并确保数字遗产的长期可访问性。未来需要持续完善这一框架,以应对不断变化的技术和社会环境带来的新挑战。

7h6j5k4l3的博客 97

什么是类?对象?类与对象的关系是什么?

对象 什么是对象?          万物皆对象。它包括现实中客观存在的事物,也包括抽象的时间、规则、思维。简单点说,对象具有状态、行为和标识。 类 什么是类?          具有相同特性和行为的对象组成的集合就是类...

daponi的博客 3万+

微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求

fly.js请求库官方教程文档,微信小程序封装fly.js请求,在小程序/mpvue中使用flyio发起网络请求的方法,微信小程序中如何使用flyio封装网络请求,微信小程序中如何使用flyio封装网络请求,最好的教程,fly最好的文档教程,微信小程序使用fly接口请求框架,引入fly.js报错,微信小程序中如何使用flyio封装网络请求,微信小程序引入Fly.js请求库,如何在fly中配置请求/响应拦截器,如何在微信小程序中优雅地发送异步请求,请求/响应拦截器,微信小程序-引入并使用F

🏆 前端领域优质创作者 5610

Java类与对象总结

《Java面向对象编程核心概念解析》 摘要:本文系统介绍了Java面向对象编程中的核心概念。首先阐述了类与对象的区别,类作为抽象模板而对象是具体实例。详细讲解了类的定义语法、成员变量与局部变量的差异,以及实例化过程。重点剖析了this引用的原理和使用场景,解释了对象构造方法和初始化机制。此外,还涵盖了封装特性、访问权限控制、包管理、static关键字的作用,以及各种代码块(普通、构造、静态)的执行顺序和初始化应用。最后介绍了对象打印的toString方法重写技巧。全文通过饮水机等生活案例,生动呈现了面向对象

zcy278854的博客 906

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

类与对象的使用

class 类名{public:公有变量和函数private:私有变量和函数protected:保护变量和函数类名 对象名例如:public:int r=10;Data a;a.Print();结果:·class为定义类的关键字,后面紧跟着的是类名,{}中为类的主体,注意定义结束后面的分号不能省略。类中的内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或成员函数。

2301_80136889的博客 1042

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

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

实验二 类与对象

4.定义一个Ladder类,声明实例变量UpperBottom,height,声明类变量LowerBottom,定义方法setUpperBottom,getUpperBottom,setLowerBottom,getLowerBottom,setHeight,getHeight,getArea,3.定义一个zuoye类,创建对象circle,参数传值,设置半径Radius,创建对象circular,调用setHeight,setBottom方法,计算圆锥体积,实现对象的组合,

m0_63421253的博客 1443

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Java】类与对象

这里的year、month、day都是局部变量,他们并不是类中的成员变量,由于局部变量优先,所以就出现自己给自己赋值的情况,所以就会出现结果都是0️⃣,而这里的0️⃣就是一个默认值,我们后面会讲到,因此我们该怎么解决呢,这时就需要this。在我们传统的手洗衣过程中,我们洗衣服需要考虑洗的衣服的材质,洗衣方式,水温,时间等等各种各样的环节处理起来非常麻烦,如果要洗鞋又是另一种方式,根据对象的不用我们有不同的过程。面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。

aeljg的博客 1038

Java类的结构与对象

Java 类的结构与对象 类与对象 类中主要包括五种结构,下面进行对这五种结构进行详细的介绍。 1. 面向对象与面向过程 面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。 面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。–唯物主义(物质决定意识) 面向对象:Object Oriented Programming 面向过程 : Procedure Oriented Programming 2. 类与对象的关系 类:对一类事物的描述,是抽象的、概念上的定义 对象

weixin_45977186的博客 948

C++类与对象

C++用类来描述对象,类是对现实世界中相似事物的抽象,比如同是“双轮车”的摩托车和自行车,有共同点,也有许多不同点。“车”类是对摩托车、自行车、汽车等相同点的提取与抽象。类的定义分为两个部分:数据,相当于现实世界中的属性,称为数据成员;对数据的操作,相当于现实世界中的行为,称为成员函数。从程序设计的观点来说,类就是数据类型,是用户定义的数据类型,对象可以看成某个类的实例(某类的变量)。所以说类是对象的抽象,对象是类的实例。由对象抽象出类由类实例化出对象。

caijirui_rui的博客 975

Java---类与对象

上节我们介绍了数组的详细操作,这期内容我为大家带来类与对象的讲解。这节可以让读者朋友们深入了解Java面向对象的本质,让大家来了解Java中的类一些重要操作

2401_87022967的博客 1753

类与对象(上篇)

类与对象上篇主要讲解了基础框架。学习了1、面向对象的初认识;2、类的引入;3、类的定义;4、类的访问限定符与封装;5、类的作用域;6、类的实例化;7、类对象模型;8、this指针。

wangjiushun的博客 767

01类与对象

类,是一种特殊的“数据类型”,不是一个具体的数据,构成为方法+数据,设计时,应当关注对外提供的功能, 先关注对外(public)提供的接口,设计好之后,再考虑内部(private)需要实现哪些功能。例:定义一个“人类“。对外功能:吃,睡,玩,工作。而后再实现内部数据或者方法,用于实现对外的方法。

weixin_49704754的博客 1195

类与对象的详解

类 什么是类? 类:类是对具有相同属性(字段或者成员变量)和行为(法)的一组对象的抽象,对一类对象的统称。 **如何理解:** 就拿人来说吧,我们每个人都有两条胳膊两条腿,两只眼睛一张嘴等,这是我们每个人都具 有的属性;每个人都具有吃饭睡觉的行为,而把 这些每个人都具有的属性和行为抽象为一个类并命名为人类。 再例如汽车类,我们都会想到它具有四个车轮等属性,具有前进后退等行为,这些在我们提到汽车时都会很自然的想起。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201

傻子编程 3610

认识类与对象

Java是一门纯面向对象的语言,在面向对象的世界里,一切皆为对象,面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情,用面向对象的思想来设计程序,更加符合人们对事物的认知,对于大型程序的设计和扩展以及维护都非常的友好类是用来对一个实体对象进行描述的,主要描述该对象具有哪些属性和哪些功能[访问修饰符] [修饰符] class 类名{field;//字段或者成员变量method;//行为或者成员方法类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。

phltxy的博客 722

Java 类与对象

类是对一类事物的抽象描述,是一个“模板”或“蓝图”,定义了这类事物的属性(状态)和方法(行为)。例如:“汽车”是一个类,它的属性包括“颜色、品牌、排量”,方法包括“启动、加速、刹车”。类不占用内存,它只是一种逻辑上的定义。对象是类的具体实例,是真实存在的个体,基于类的模板创建,具有类定义的属性和方法。例如:“我家那辆黑色的特斯拉Model 3”是“汽车”类的一个对象,它的属性有具体值(颜色=黑色,品牌=特斯拉,排量=纯电),可以执行启动、加速等行为。对象占用内存,每个对象都是独立的。类通过。

2501_91241024的博客 1388

类与对象和类的创建

在类的创建中,如 Cat cat = new Cat()“new Cat()”创建的对象空间(包括其中的数据),才是真正的对象。cat只是一个对象名,进行对象引用,指向对象空间的地址。

m0_75013084的博客 335
上一篇: 1.3.1-数组
下一篇: 第8章 Java的反射机制、Java的代理机制、类加载
我叫王哈哈
博客等级 码龄11年 36粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值