① java中什么是面向对象
在java的学习中,面向对象应该是java技术的重中之重,虽然在生活中没有对象可以面对,但在技术中还是要一直接触面对对象,而且不可避免。今天对面向对象来了一个小总结。
一、面向对象的特点:
1、将复杂的事情简单化。
2、面向对象将以前的过程中的执行者,变成了指挥者。
3、面向对象这种思想是符合现在人们思考习惯的一种思想。
过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。
二、匿名对象使用场景:
1、当对方法只进行一次调用的时候,可以使用匿名对象。
2、当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。
三、在类中定义其实都称之为成员。成员有两种:
1、成员变量:其实对应的就是事物的属性。
2、成员函数:其实对应的就是事物的行为。
所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。
四、类中怎么没有定义主函数呢?
注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。
五、成员变量和局部变量的区别:
1、成员变量直接定义在类中;局部变量定义在方法中,参数上,语句中。
2、成员变量在这个类中有效;局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3、成员变量存在于堆内存中,随着对象的产生而存在,消失而消失;局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
六、构造函数和一般函数有什么区别呢?
1、两个函数定义格式不同。
2、构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
一般函数,是对象创建后,需要调用才执行,可以被调用多次。
七、创建一个对象都在内存中做了什么事情?
1、先将硬盘上指定位置的Person.class文件加载进内存。
2、执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。
3、在堆内存中开辟一个实体空间,分配了一个内存首地址值。new
4、在该实体空间中进行属性的空间分配,并进行了默认初始化。
5、对空间中的属性进行显示初始化。
6、进行实体的构造代码块初始化。
7、调用该实体对应的构造函数,进行构造函数初始化。
8、将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)
② 什么是java面向对象编程
面向对象编程(oop)旨在将现实世界中的概念模拟到计算机中,它将现实世界中的所以事物视作对象。对象是存在的具体实体,具有明确定义的状态和行为。
③ java的面向对象是什么意思,能不能用通俗的话解释一下
面向对象的简单理解就是,你可以把现实中的每一件物品都看作是一个对象,这个物品的信息看作是对象属性,物品功能看作是对象方法
比如,身份证,这是一个对象,身份证上的姓名,籍贯地址,开卡所,有效期等等信息看作是这个对象的属性,身份证可以刷卡,那么刷卡这个动作就是身份证对象的方法/事件
再比如你开的车子,车子本身是对象,车辆类型,购买时间,里程数,手动/自动,耗油数,座位数,等等这些属于这两车子的信息都是属性,前进,转弯,后退,这些动作都是车辆方法;比如保养,年审,事故,修改里程公里数等等这些东西也是车辆的方法,但也同时是车辆的事件,所以这里单独称为事件方法,事件是方法,方法不一定是事件.不知道说的清楚吗
④ 用java进行面向对象编程,面向对象是什么意思,请通俗一点解释
通俗一点说就是你可以设定一个类,比如汽车类Car。汽车有很多属性,比如颜色color,品牌brand。
然后呢,你new一个对象出来。Car myCar=new Car()
类具体到某一个特定的个体的时候,就是一个对象了。
我们可以给myCar设定颜色和品牌,还可以让它干好多别的事情。
再说人类。人类是一个很大的群体,但是特定到某一个人,比如你,比如我,比如小明,张三,李四,每个特定的人,都是一个对象,他属于“人”这个类
你先明白java中类的概念。类具体到某个实例,就是对象了
⑤ Java中面向对象到底是什么意思求解,谢谢。
面向对象:
1、面向对象
面向对象是一种程序设计思想,计算机程序的设计实质上就是将现实中的一些事物的特征抽离出来描述成一些计算机事件的过程,这种抽象的过程中,我们把具体的事物封装成一个一个的整体进行描述,使被描述的对象具备一些系统性、整体性的的行为和特征,我们把这种设计思想称为面向对象。
2、面向对象与面向过程
2.1、面向过程是早期的程序语言设计思想,该思想强调事物的行为细节,即程序的设计不需要封装成一个个的整体,而是将整个程序描述成一个行为,所有行为细节都按照固定方式一步一步的执行,执行程序就是执行某一行为的过程。
2.2、面向对象和面向过程都是一种思想,面向对象是相对于面向过程而言的,
面向过程强调的是具体的功能行为,而面向对象将功能封装进对象,强调具备了功能的对象,面向对象是基于面向过程的,但面向对象思想更接近于现实场景。
三大特性:
1、封装
1.1、封装是指:隐藏对象的属性和实现细节,仅对外提供公共访问方式
1.2、封装的好处:
(1)将外界的变化隔离,使程序具备独立、安全和稳定性。
(2)便于设计者使用,提高代码的复用性
1.3、封装的原则
(1)将不需要对外提供的内容都隐藏起来
(2)把实现细节隐藏,提供可以对其进行访问公共的方式
1.4、封装的方式
将某一功能、属性抽离出来,独立写成单独的方法或类
设置访问权限
(1)设置访问权限可以限定该功能或属性可以被特定的访问者访问,保证了程序的安全性和功能的稳定性。
(2)java对类和类中成员都定义了特定的访问修饰符
类:public(公共的)、default(默认的,不写就默认是它)
类中成员:public、protected、default(默认的)、private
注:类的访问修饰符可以不写(默认的),也可以写public(公共的),一个java文件中只能有一个被public修饰的类,且被public修饰的类类名必须要跟文件名一致(包括大小写一致),否则编译会出错,为了方便阅读,类名的命名规范是单词的首字母大写,多个单词组成的类名每个单词的首字母都大写
2、继承
2.1、继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的功能,或者说将事物的共性的功能和属性抽取出来定义成一个父类,让后来具有更多样化实现的子类继承父类。
2.2、继承的作用:
(1)父类具备的方法子类可以直接继承过来,不用重新书写,提高了代码的复用性
(2)让类与类之间产生关系,有了关系才有多态的实现
(3)Java中只支持单继承,不支持多继承,因为多继承存在安全隐患(当多个父类存在同个功能时,子类不确定要运行哪一个),Java支持多层继承,即父类还可以继承其他类,java用另一种机制解决单继承的局限性,即多实现
2.3、对继承体系的使用
(1)想要使用体系,应该先查阅父类,因为父类定义了该体系的共性功能,了解了父类的功能,就基本可以使用该体系的功能了
(2)在具体调用时,要创建子类的对象,因为有可能当父类是抽象类时父类不能创建对象,而且子类具备更丰富、更具体的功能实现
2.4继承的特点
2.4.1覆盖(重写)
2.4.1.1如果子父类中的成员一致时,子类成员会覆盖父类成员
2.4.1.2当子类继承父类时,沿袭父类的功能到子类中,但子类对该功能的实现细节不一致,子类可以保留父类对该功能的定义,重写功能的内容
2.4.1.3覆盖与重载:重载只看参数列表,其他一致参数列表不一致为重载,而重写子父类的参数必须要一致
2.4.2this与super
this表示当前对象的引用,super表示当前对象父类的引用
2.5子父类中的构造函数
2.5.1构造函数不能重写
2.5.1.1构造函数第一行有一条隐式的语句super()/this()
2.5.1.2在对子类对象进行初始化时,父类构造函数也会运行,因为子类中的构造函数默认第一行有一条隐式的super()语句,这样方便子类构造时先获取到父类的共性属性
2.5.1.3super()一定要定义在子类构造函数的第一行,当没有默认的空参数构造函数,要手动指定
2.6、注意事项:
2.6.1千万别为了获取其他类中的功能而继承,必须是类与类间有所属关系才可以继承。
2.6.2子类覆盖父类时必须保证子类权限大于等于父类,才可以覆盖,否则编译失败
2.6.3子类静态成员只能覆盖父类静态成员
2.7final关键字
2.7.1final关键字可以修饰类、函数和变量
2.7.2被final修饰的类不可以被继承(继承打破了封装性)
2.7.3被final修饰的方法不可以被复写
2.7.4被final修饰的变量只能被赋值一次,既可以修饰成员变量,也可以修饰
2.8Object类
2.8.1java中有一个特殊的类,Object类,它是所有对象的超类(根类),Object类中定义了所有对象的共性成员
2.8.2Object类中的方法
equals()比较两个对象是否相同
toString()返回该对象的字符串表示形式
getClass()获取该对象对应的字节码文件对象
hasCode()获取该对象的哈希码值
2.9类间的体系关系
继承、聚集(聚合)、组合
2.9.1继承:
指的是一个类继承另外的一个类的功能,并增加它自己的新功能或改写旧有功能的具体实现,继承是类与类之间最常见的关系。
2.9.2聚合:
指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如足球队中的足球队员就是聚合关系。
2.9.3组合:
也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。例如人的各个身体器官之间的关系。
3、多态
3.1、多态的定义;某一类事物具备的多种表现形态(猫、狗和动物)
3.2、java中多态的表现形式
父类的引用指向自己的子类对象
父类的引用接收自己的子类对象
3.3、多态的前提
必须是类与类之间有关系,要么继承,要么实现
子父类间的成员存在覆盖
3.4、多态的好处与缺陷
好处是提高了程序的扩展性,缺陷是只能使用父类的引用访问父类的方法,无法访问子类的特有方法。
3.5、多态的应用
类型转换
向上转型,自然转型
向下转型,强制父类引用向下转型
3.6、特点
(1)多态中成员函数的特点
编译时看引用变量所属的类中是否有方法
运行时看对象所属类的方法
(2)多态中成员变量的特点
无论编译或运行时都参看右边
多态中静态成员函数的特点
编译或运行时都参看左边
3.7、多态的扩展示例
数据库操作(各种数据库):定义数据库的父类型,由哪类型的数据库调用就由该子类实现其具体操作内容。
我有一个微信公众号,每天都会分享一些Java相关的干货文章,还有海量学习资源。
如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。
⑥ java: 谈谈你对面向对象的理解
java万事万物皆对象(一种理念;只可意会,不可言传!)。
对象是数据与只能处理这些数据的方法的封装(一个原子单元),类是程序员提供给系统的一类对象相似的对象的描述(描述),程序开始运行之时,想一下程序中是不是未存在任何对象,就连对象的声明(用代码表示具体的对象)也没有,单单就存在对象描述模板(即是:类),所以我们可以通过模板,叫系统new(构造)一个具体的对象来使用。
特别提醒一点:千万要揣摩一下这句话(对象是数据与只能处理这些数据的方法的封装)。
具体可以结合面向对象的四大特征进行理解:封装 继承 多态 抽象
⑦ java中面向对象怎么理解最好是自己的理解
林氏120烧伤烫伤救护中心为您解答:
面向对象是一种思想,是一种架构分析设计思想,在项目中比如要做个,“三国杀”的在线游戏,那我们首先就会先分析这个游戏里面涉及到的实体,也称对象。比如分析出如下对象:
A 英雄角色
a1 角色属性 (技能、血量等)
B 游戏牌 (分 武器牌、杀闪牌、锦囊牌、药)
C 游戏房间
D 房间玩家
d1 玩家身份 (主公、忠、反、间)
分析完,有这些对象后,整体的思路其实有了。下一步,我就要细化分析这些对象的关系,并设计,比如游戏牌的分析。游戏牌有很多种牌,所以就 把游戏牌抽象成一个 基类(父类),并在父类里封装了所有牌共同的属性,和 行为(方法),做完这步设计具体游戏牌对象的时候,就会用到继承、重写、重载等方法处理对象之间的关系。其他对象的分析类似。
个人总结,分析有哪些对象是基础,处理各个对象之间的关系,就是设计架构。整个过程就是面向对象编程或称面向对象设计。
⑧ java中 什么是面向对象 怎么理解能否举例例子 通俗易懂说明,谢谢
Java的面向对象!打个比如!你现在手里!有一部手机!这个手机就是面向对象!意思就是说!面向对象就是你看到的一切皆是对象!你得分析他有什么!手机!有电池!有内存卡!可以打电话!可以发短信!可以上网!这就是对象!
⑨ Java面向对象的理解
通过你的描述根本看不明白你在说什么
不一定老师说的就对,老师一般头脑里有个“正确”做法,不一样的都被看作“不好”做法。
面向对象的重要作用是封装,一个类、方法一般只做一件事。如果你能做到对象内部管理其自身状态和逻辑,对外只暴露简单接口,那我觉得就算好的对象