首页 > 编程语言 >Java面向对象概括

Java面向对象概括

时间:2024-09-17 22:46:34浏览次数:1  
标签:Java 变量 构造方法 概括 子类 面向对象 对象 父类 方法



面向对象与面向过程的思想面向过程:亲力亲为,侧重于分析过程。面向对象:所有事情交给相应的对象完成,侧重于如何创建对象。可总结为下面三点:1.都可以实现代码重用和模块化编程,但是面对对象的模块化更深,数据更封闭,也更安全!因为面向对象的封装性更强!2.面对对象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务逻辑3.从前期开发角度上来看,面对对象远比面向过程要复杂,但是从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!、No2类和对象具有相同的属性和行为的对象的集合,称为“一类”。类也可以称为模板。属性:描述对象的特征,在程序中,通过定义变量的形式表现属性。行为:描述对象的动作,在程序中,通过定义方法的形式表现行为。在程序中,通过定义一个class去定义一个类。在类中定义变量描述属性,定义方法描述行为。示例:类名 对象名=new 构造方法(参数);No3成员变量和局部变量成员变量:定义在类中的变量,称为成员变量,拥有默认值。局部变量:定义在方法中的变量,称为局部变量,没有默认值,赋值后才能使用。成员变量和局部变量的区别以及生命周期1.成员变量定义在类中,有默认值;2.局部变量定义在方法中,没有默认值3.成员变量的生命周期:随着类创建对象,成员变量初始化,该对象回收,成员变量销毁4.局部变量的生命周期:随着方法调用,局部变量初始化,方法调用结束,局部变量销毁No4构造方法概念:是一个特殊的方法,没有返回值,方法名和类名一致。每个类在定义时,都有一个默认隐藏的无参数的构造方法,在创建对象时自动调用,通常用于初始化成员变量。特点:1.没有返回值(没有返回值,并不是void),方法名和类名必须相同2.每个类默认有一个无参数的构造方法,方法体中没有内容3.构造方法不能通过.操作符调用,在创建对象时自动调用,所以通常用于初始化成员变量4.如果自己写了有参的构造方法,默认无参的构造方法就会失效,如果想要使用无参的构造方法,需要再写出来才能使用5.构造方法可以限制创建对象时的参数6.可以同时存在多个不同参数的构造方法,这称为构造方法的重载No5面向对象三大特性(1)面向对象特性之封装性为什么要封装?Java程序设计追求“高内聚,低耦合”高内聚:类的内部数据操作细节自己完成,不允许外部干涉低耦合:仅对外暴露少量的方法用于使用隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露岀来。这就是封装性的设计思想封装具体体现1.将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值2.不对外暴露的私有的方法3.单例模式(将构造器私有化)4.如果不希望类在包外被调用,可以将类设置为缺省的。(2)面向对象特性之继承性继承关键字:extendsthis和superthis:表示当前对象或者构造方法,两种不同用法的区别是:this.属性。表示当前类的对象,只能在方法当中使用,通常用于在方法中区分成员变量和参数。this():此时的this()表示,当前类的一个构造对应的构造方法。当this被当作构造方法使用时,它只能写在构造方法的第一行。super:可以表示父类的对象或者构造方法。super.属性:表示当前类的父类的对象,用法和this相似super():表示调用父类的一个构造方法,用法和this相似继承的特点1.继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。2.对象的一个新类可以从现有的类中派生,这个过程称为类继承。3.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。4.派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。5.Java中只允许单继承,但允许多层继承。子类继承父类后的区别子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私的结构。只因为封装性的影响,使得子类不能直接调用父类的结构而已。子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。子类和父类的关系,不同于子集和集合的关系。(3)面向对象特性之多态性定义:在Java中,多态是指不同类的对象在调用同一个方法时所呈现出的多种不同行为。说明:通常来说,在一个类中定义的属性和方法被其他类继承或重写后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同形态。对象类型的转型向上转型:在多态的学习中,涉及到将子类对象当做父类类型使用的情况,此种情况在Java的语言环境中称为“向上转型”。即父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。// 将Cat类对象当做Animal类 型来使用Animal an1 = new Cat();// 将Dog类对象当做Animal类型来使用Animal an2 = new Dog();注意:将子类对象当做父类使用时不需要任何显式地声明,需要注意的是,此时不能通过父类变量去调用子类特有的方法。向下转型向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称之为向下转型!

标签:Java,变量,构造方法,概括,子类,面向对象,对象,父类,方法
From: https://www.cnblogs.com/guokef/p/18417676

相关文章

  • Java和数据库开发规范
    java开发规范第一节:命名风格1.方法名,参数名,成员变量都统一使用lowerCamelCase风格,必须遵从驼峰形式2.类名必须使用upperCamelCase风格,但以下情形例外:DAO/BO/PO/VO/UID3.常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长4.代码中命名均不能以下......
  • JavaScript -- 数组数据类型
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......
  • JavaScript -- 数组的基本操作
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......
  • Java基于微信小程序的个人财务理财系统App+Vue[毕业设计]
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,个人财务系统APP当然不能排除在外。个人财务系统APP是在实际应用和软件工程的开发原......
  • Java基于SpringBoot的个人健康管理网站+Vue[毕业设计]
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对个人健康管理的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化......
  • 初学Java.Scanner
    publicclassDemo04{publicstaticvoidmain(String[]args){//我们要输入多个数字并且要求出总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并且执行输出结果Scannersc=newScanner(System.in);//和doublesum=0;//计算输入多少......
  • Java 学习 day02
    javaday02DtaaType数据类型Java是一门强类型的语言。1、变量变量:指的是在Java程序运行过程中,其值可以发生改变的量。定义一个变量的语句定义格式://数据类型变量名=初始化值;注意事项:1、变量要进行初始化赋值,才可以进行使用2、在同一作用域下,变量名不能重复,可以大小......
  • 基于java的城市公交查询系统Vue3+SpringBoot
    目录功能和开发技术介绍具体实现截图开发核心技术介绍:技术创新点vue3和vue2的区别:核心代码部分展示非功能需求分析系统开发流程系统运行步骤软件测试源码获取功能和开发技术介绍本课题拟采用主流的MVC架构、开发工具idea、java语言编程、MySQL数据库技术、Vue.js技......
  • java pom两个模块需要互相引用怎么办
    在Maven项目中,如果两个模块(通常称为子模块)需要互相引用,这通常意味着你的项目结构可能需要重新考虑或调整。Maven默认不支持直接的循环依赖,因为这会导致构建过程中的死锁。但是,有几种方法可以处理这种情况或避免它:1.重新设计项目结构首先,考虑是否有可能重新设计项目结构来避免循环......
  • 【Java 优选算法】双指针(下)
    欢迎关注个人主页:逸狼创造不易,可以点点赞吗~如有错误,欢迎指出~有效三角形的个数题目链接解法解法1:暴力枚举--->O(n^3)解法2:利用单调性,使用双指针来解决---->O(n^2)优化:对整个数组进行排序先固定最大数在最大数的左区间内,使用双指针算法,快速统计出符合要......