面向对象学习基础进阶

00P-面向对象编程 1. 面向对象编程介绍 ●面向过程:根据业务逻辑从上到下写代码。面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑。  ●面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它 阅读详情

目录内容

在这里插入图片描述

00p就是面向对象的意思

在这里插入图片描述

重点: 属性加方法就是一个类




一:面向对象与面向过程讲解

在这里插入图片描述



二: 什么是面向对象

在这里插入图片描述



重点: 面向对象编程的本质:以类的方式组织代码 以对象的组织(封装)数据

从认识论角度考虑是先有对象后有类 对象 是具体的事物 类是抽象的 是对对象的抽象
从代码运行角度考虑是先有类后有对象 。 类是对象的模板

三:回顾方法并加深

在这里插入图片描述




重点
break的意思为:跳出switch 和结束循环
return的意思为:结束方法 和返回一个结果!
定义方法名的重点:1 注意规范 2 见名知意(如果你写了一个方法代码 过了一个月看到方法命名就能知道是干什么的)

Exception 就是异常的意思



练习

在这里插入图片描述

四:静态方法和非静态方法的调用

在这里插入图片描述

在这里插入图片描述

重点:
报错原因:static 和类一起加载的 而没有static的方法只有类实例化(实例一个对象) 之后才存在




五:形参和实参

在这里插入图片描述

六:值传递和引用传递

重点:方法a引用了change方法后a的值不变

在这里插入图片描述

在这里插入图片描述

对比:(打印值的不同)

在这里插入图片描述

六:类跟对象的关系

七:创建与初始化对象

在这里插入图片描述

在这里插入图片描述

重点:
类是一种抽象的数据类型 它是对某一类事物整体描述/定义 但并不能代表一个具体的事物 比如动物 人 植物等
而对象是抽象概念的具体实例 能够体现出功能的是具体的实例而不是一个抽象的概念 比如张三是一个人 旺财是一条狗是等等




一个程序只有一个主启动类 (也就是程序中只有一个类含有main方法 其他的类中没有)




一个类里面最多有属性和方法



学程序可以对世界进行更好的建模!
面向对象编程的本质就是:以类的方式组织代码 以对象的组织(封装)数据



在这里插入图片描述

八:构造器(重点必须掌握)

练习一

重点:一个类即使什么都不写 它也会存在一个方法



在这里插入图片描述

练习二

重点:快捷键 alt+insert 定义有参无参



构造器总结:
1 和类名相同
2 没有返回值
作用
1 定义一个new对象 本质在调用构造方法
2 初始化对象的值
注意点:
(重点 重点 重点)1 定义有参构造之后 如果还想使用无参构造
如 Person person1 = new Person();
那么必须显示的定义一个无参构造
如:public Person(){}

易错点 不理解有参构造:如
Person person = new Person(“二哥”);这一行代码为有参构造(二哥为参数传到方法里 也就是构造器里面)

在这里插入图片描述




在这里插入图片描述

九:创建对象内存分析

练习

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

十:类和对象总结

1 类与对象:类是一个模板 :抽象 对象是一个具体的实例
2 方法 :方法的定义 和调用
3 对象的引用: 引用类型:八大基本类型

Java对象是通过引用来操作的 :也就是说在栈里面定义一个对象来引用堆里面的东西(栈—>堆)
4 属性:属性可以用字段Field或者成员变量(int String等)
属性默认初始化:
数字:0 0.0
char:u0000
Boolean:false
除了八大类型的引用类型:null
属性的定义: 修饰符 属性类型 属性名 = 属性值!
5 对象的创建和使用
A:必须使用new关键字创建对象 要有含有构造器的类
如 Person xiaoming=new Person();
B:对象的属性:xiaoming.name
C:对象的方法:xiaoming.sleep()
6 类:
类中有静态的属性(属性)和动态的行为(方法)

十一:什么是封装

面向对象三大特性:封装 继承 多态

在这里插入图片描述

重点:封装记住一句话:属性私有和get/set




封装代码的意义:
1 提高代码的安全性 保护数据
2 隐藏代码的实现细节
3 统一接口(统一用get/set方法来使用)
4 提高了系统的可维护性

练习

//属性私有
private String name;//名字
private int age;//年龄
private char sex;//性别
private int id;//学号



//由于上面的属性都是私有的
//提供一些可以操作这个属性的方法
//get 获取这个数据的方法
public String getName(){
//理解点:return name;和 return this.name;
//意思相同 因为在该类中返回name的值(return name)
// 的意思就是返回这个类中name的值(return this.name)
//return this.name;
return name;
}



//set 给这个数据设置值
public void setName(String name){
this.name=name;
}

在这里插入图片描述

重点:给数据设定值定义范围(避免不合法性)
public void setAge(int age) {
if (age>120||age<0){
this.age=3;
}else {
this.age = age;
}
}



在这里插入图片描述

十二:继承

在这里插入图片描述

继承的本质是对某一批类的抽象
而封装是对类里面的属性和方法进行操作

Java中类只有单继承 没有多继承
继承是类和类之间的一种关系
继承关系的两个类 一个为子类(派生类)一个为父类(基类)

练习




子类继承父类 就会拥有父类的全部方法(修饰符是public)


在这里插入图片描述

在Java中:所有的类 都默认直接或间接继承Object
快捷键 ctrl+H 查看继承父子级别



十三:super



练习一

父子类私有的东西(private)无法被继承

在这里插入图片描述

练习二



//调用父类的构造器 必须在子类构造器的第一行
//隐藏代码:调用了父类的无参构造(而且还在第一行)

在这里插入图片描述



练习三



子类(super调用)调用父类 有参构造器和无参构造器讲解(重点和难点)

重点:
super注意点:
1 子类super调用父类的构造方法,必须在构造方法的第一行
2 super必须只能出现在子类的方法或者构造方法中!
3 super和this不能同时出现在构造方法中(因为他们都要在构造方法的第一行)否则会报错(如下图)
【在本身无参构造中调用自身的有参构造
( 那么必须在构造方法中的等一 行代码否则会报错
但是在子类的无参构造中调用父类的无参构造super也必须在第一行代码
所以super和this不能同时出现在构造方法中)】
this注意点:
区别:代表的对象不同
this:代表本身调用者这个对象
super:代表父类对象的应用
前提情况下:
this:没有继承关系也能使用
super:只能在继承条件下才能使用
构造方法:
this();本类的构造!
super();父类的构造!

在这里插入图片描述



难以理解点:
当父类没有无参构造时 子类也就不能存在无参构造(重点)只有一种情况下出现例外!!!(除非在子类的无参构造中调用 父类的有参构造 那么子类的无参构造才可以存在)
如下图代码所示:

在这里插入图片描述

十四:方法的重写【(重点)多态的基础】

练习:



重点:重写都是方法的重写 与属性无关

在这里插入图片描述

重点:重写方法只能重写父类非静态的方法(没有static)
重写跟静态方法没有任何关系 只跟非静态方法有关
(静态方法是在类加载的时候就已经出现)




重点:理解:为什么运行结果都是A–>test();结果 因为子类重写了父类

在这里插入图片描述




重点:
重写总结:
重写:需要有继承关系 就是子类重写父类的方法!
1 方法名必须相同
2 参数列表必须相同
3 修饰符:范围只可以扩大 但不能缩小 例:public>protected>Default>private
4 抛出的异常:范围只可以缩小但不能扩大:例:classNotFoundException–>Exception
重写子类的方法名必须和父类一致 :但是方法体不同!



为什么要重写:
1 父类的功能 子类不一定需要 或者不一定满足!
快捷键:alt+insert :override

面向对象的概念 ●我们以后的编程思想是,每一个功能,都先创造一个 面馆,这个 面馆 能帮我们作出一个 面(完成这个功能的对象),然后用 面馆 创造出一个 面,我们只要等到结果就好了。■动态语言是在运行时确定数据类型的语言。■JavaScript能够动态修改对象的属性,没有办法在编译的时候知道变量的类型,只有在运行的时候才能确定。●重点: 在函数的 prototype 里面存储的内容,不是给函数使用的,是给函数的每一个实例化对象使用的。○在面向过程的时候,我们要关注每一个元素,每一个元素之间的关系,顺序,。 阅读详情

相关推荐

Java零基础学习Day13——面向对象进阶

JavaBean类用于描述一类事物的类比如Student、Cat等测试类用来检查其他类是否书写正确带有main方法的类,是程序的入口工具类用来帮我们做一些事情的类私有化构造方法,目的是为了不让外界创建其对象方法定义为静态public(其他的非私有同理)private构造方法NONO成员变量YESYES成员方法虚方法YES非虚方法NO构造方法:违背了构造方法的名字和类名(class)不一致成员变量:private是继承了但不能直接使用成员方法:只有基类的虚方法才能被派生类继承。

m0_68932052的博客 1258

什么是面向对象?

象原型__proto__和构造函数原型对象prototype都有一个属性,叫做constructor,称之为构造函数,主要记录该对象引用了哪个构造函数,可以让原型对象重新指向原来的构造函数,这就是为什么在实例对象中传递参数时,构造函数本身不需要写return返回结果的原因。属性是对象的状态,方法是对象的行为(完成某种任务)。即this作用域的问题。是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总是与new一起使用,我们可以把对象中的一些公共的属性和方法抽取出来,然后封装到这个函数里面。

weixin_61665636的博客 1万+

Java零基础学习Day14——面向对象进阶

面向对象三大特征:封装 继承 多态。

m0_68932052的博客 952

什么是面向对象?你了解吗?(超细讲解)

就是将一件“大事”,按一些更小的步骤(小事)顺序去一个一个完成。这几乎符合人类的基本行为习惯。思想演示举例第一步,学生提出要报名,并提供姓名和照片第二步,咨询老师接收照片并登记学生姓名第三步,学生缴费(付款到学校账号)并获得缴费凭证第四步,咨询老师验证凭证并分配班级第五步,最终结果为:报名完成,学生可以在规定的时间到规定的班级(教室)上课,数据库中就有了该学生的信息。

m0_64892344的博客 4576

Java零基础学习Day15——面向对象进阶

抽象类、接口、内部类

m0_68932052的博客 1173

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2594

面向对象基本概念

什么是面向对象 面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。 面向对象编程(OOP: object-oriented programming) 面向对象与面向过程的区别 使用场景 30种编程语言的比较选

m0_50542287的博客 6762

【AI赋能】Sora + CapCut 打造爆款短视频:从脚本到发布的自动化工作流

本文详细介绍了如何利用Sora、Grok和CapCut等AI工具构建自动化短视频生产工作流。通过结构化Prompt生成专业脚本,借助Sora将文字转化为高质量视频素材,并利用CapCut进行高效剪辑与合成,实现从创意到发布的十倍效率提升,助力个人及团队打造爆款内容。

g8f9d0s1a2的博客 500

【python零基础入门学习】python进阶篇之OOP - 面向对象的程序设计_基于oop的gui交互的设计与实现python面向对象登录操作(1)

$/\1:\2:\3:\4:\5:\6/ ----%s// 全文替换 在vim中。print(‘《%s》是%s编著的’ % (self.title,self.author))print(‘我是%s,我使用%s’ % (self.name,self.weapon))pybook = Book(‘Python核心编程’,‘韦斯利’)#调用。#在food的开头匹配f…自下向上,自左向右------先C-B-A, 之后C(B,A)(self,nm,wp):#self是约定俗成, 定义角色用。

2401_84281698的博客 936

针对so层不固定位置的动态加密,怎么解决?(面试题)

Android逆向之破解某应用加密算法(动态调试so和hook so代码):so 代码动态解密后才执行,我们可以在解密完成后获取解密后的代码或数据。Android逆向之旅—动态方式破解apk进阶篇(IDA调试so源码)如果你有更具体的加密场景,欢迎提供更多信息,我可以给出更详细的方案!某些 so 在运行时生成密钥,解密后再用。某APP密码加密算法分析。

SXXYNHHXX的博客 928

OAI数据集申请下载全攻略:从个人NDA账号注册到数据包下载的保姆级避坑指南

本文提供OAI数据集申请下载的完整指南,涵盖从个人NDA账号注册到数据包下载的全流程。重点解析login.gov验证陷阱、浏览器兼容性问题、NDA权限申请技巧及nda-tools高效使用方法,帮助医学影像研究者避开常见技术障碍,快速获取全球骨关节炎研究数据库OAI的宝贵数据资源。

weixin_28698059的博客 756

Python基础学习(十一)面向对象编程进阶

本文主要介绍面向对象进行部分:封装、继承、多态、魔术方法、抽象类、设计模式。

软工星球的博客 1934

TTL电路搭建半加器实验:操作指南完整版

通过TTL电路搭建半加器,详解逻辑设计与实验步骤,帮助掌握数字电路中的半加器工作原理与实际应用,适合电子技术初学者动手实践。

weixin_42524864的博客 358

Java学习02——面向对象基础+进阶1

在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在要求在创建人类的对象时,就直接指定这个对象的年龄和姓名,这时就可以使用构造器。如果在类中显式定义了至少一个构造器,而没有提供默认的无参构造器,那么默认的无参构造器就不再可用。通过构造器,可以方便地在创建对象时为其提供初始值,确保对象的正确初始化,并且可以在构造器中执行其他必要的操作,如参数验证、对象依赖的注入等。构造器是一个特殊的方法,它包含一组指令,构造器在对象创建时自动调用,并在对象使用之前对其进行必要的设置和准备工作。

mwbdynn的博客 169

EPLAN二次开发入门:Visual Studio 2019环境配置与插件调试实战

本文详细介绍了EPLAN二次开发入门的关键步骤,重点讲解如何在Visual Studio 2019中配置开发环境并进行插件调试。通过创建符合命名规范的项目、引用核心API库、实现插件接口以及使用附加进程调试等实战技巧,帮助电气工程师快速掌握EPLAN插件开发,提升自动化设计效率。

h6i7j8的博客 763

19、利用PostGIS进行空间分析:更高效的矢量分析方法

本文介绍了如何利用PostGIS进行高效灵活的矢量空间分析,重点探讨了在选址安静住宅场景中使用缓冲区和距离测量两种方法的实现与优化。通过QGIS与PostGIS结合,演示了数据上传、CTE应用、ST_Intersects与ST_Distance函数对比,并深入分析了横向子查询在提升查询性能和代码可读性方面的优势。文章还比较了不同方法的适用场景,并以房地产开发选址为例展示了完整分析流程,最后总结了PostGIS在空间分析中的强大能力与未来应用前景。

d3e4f的博客 92

JAVA基础学习笔记_面向对象进阶+集合

仔细去理解多态是在干嘛,自己总是将抽象类的作用安在多态上相对于重写,可防止子类忘记填补这个方法的使用编写,但是也要加上@Override抽象类不能实例化抽象类的子类要么重写抽象类的所有抽象方法,要么也是抽象类因为公司里团队合作,所以抽象类是规范代码,规范所有人写代码的形式,

m0_64213455的博客 967

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JavaScript面向对象学习笔记基础与进阶

本篇笔记适合有一定有js面向对象基础的同学看。笔记的思路是由整体到局部,有浅层到深层!1.面向对象的概念 如果我们将属性和功能理解成一个个工具,那么一个对象就是这些工具的集合,也就是工具包。 传统方式是直接写细节,面向对象方式是先宏观思考,想出一个个工具,再写细节去实现这些工具 1.1.面向对象语法我们知道,对象都有自己的属性和方法。所以用代码实现对象,就是分别实现它的属性和方法构造函数放置属性,原

773

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JAVA基础学习笔记-day06-面向对象进阶

博文主要是自己学习JAVA基础中的笔记,供自己以后复习使用,参考的主要教程是B站的耐心是一切聪明才智的基础。——柏拉图。

天才在左,疯子在右,而我只想做个不折不扣的乐天派 237

数学建模模型总结

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

零基础入门学习Python第一阶09面向对象进阶

理论部分就先到这里,在下一篇文章中,将会给出一些具体的综合案例来帮助大家更好的理解面向对象。敬请关注后续发布的文章!!!

BrentenJavon的博客 958

python基础学习(七)——面向对象进阶

笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。 我的公众号为:livandata 面向对象高级语法部分 经类vs新式类 把下面代码用python2 和pyth...

livan1234的博客 581

【python零基础入门学习】python进阶篇之OOP - 面向对象的程序设计_基于oop的gui交互的设计与实现python面向对象登录操作

运维日常》《linux》

2401_84715732的博客 276

JAVA基础进阶-面向对象 学习笔记

3.this关键字:添加this.name 以后,会优先使用成员变量的name而不是局部变量的name。this的本质是代表方法调用者的地址,然后继承里面的super是找父类里面的成员变量进行赋值。6.JAVA支持单继承,不支持多继承,但是支持多层继承。5.静态随着类产生而调用,而非静态随着成员。4.引用数据类型:使用地址找到具体数据。2. private只有在本类中使用。

2301_80983176的博客 189

第2课:TensorFlow|Python深度学习必备基础【语法进阶、数值计算、数据处理、面向对象核心】

Python深度学习进阶:NumPy与OOP实战指南 摘要 本文系统讲解Python在深度学习中的进阶应用,涵盖NumPy高效运算、面向对象编程和数据处理三大核心模块。通过列表推导式、生成器、装饰器等语法优化代码性能;深入解析NumPy的广播机制与向量化运算;演示如何运用类继承、@property等OOP特性构建可扩展的深度学习组件;最后结合Pandas和Matplotlib实现完整的数据预处理流水线。所有知识点均配有可运行的代码示例,帮助读者从语法层面提升到工程实践层面,为后续TensorFlow模型开发

Java 后端|Python|AI 实战博主。专注微服务、分布式、大模型应用开发,输出可落地项目、源码剖析与面试总结。用通俗文字拆解技术难点,记录开发路上的学习与踩坑,期待和大家一起交流成长。 546

【系统学习】【Java基础】2-Java进阶知识总结-1-面向对象

Java 中想要创建对象,必须先要有类的存在类指的是一组相关属性(成员变量)和行为(成员方法)的集合(我们将其理解为是一张对象的设计图)要根据类来创建对象1个类可以创建n个对象// 抽象类public abstract class 类名{};// 抽象方法public abstract 返回值类型 方法名(参数列表);

HMTeen 171
上一篇: 稀疏数组复习版代码
下一篇: 多态是什么
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值