返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈java类和对象
  • 180
分享到

浅谈java类和对象

2024-04-02 19:04:59 180人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一、面向对象的描述二、类和对象的基本概念三、类定义和使用1、简单认识类2、类的定义3、实例化对象4、类的三大特性封装继承多态一、面向对象的描述 面向对象是一种现在最为流行的程序设

一、面向对象的描述

面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成c++,而由C++产生了Java这门面向对象的编程语言

但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,所以,面向对象的开发更像是一个具备标准的开发模式。

在面向对象定义之中,也规定了一些基本的特征:

封装:保护内部的操作不被破坏。继承:在原本的基础之上继续进行扩充。多态:在一个指定的范围之内进行概念的转换。

对于面向对象的开发来讲也分为三个过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。

二、类和对象的基本概念

:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法)。

对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。

三、类定义和使用

1、简单认识类

类是对一个对象进行描述的。主要描述对象具有哪些属性(外观尺寸等),哪些功能(用来干
啥)。

例如:

一个洗衣机,可以将它看作一个类别。然后属性就是这个洗衣机的品牌、长、宽、颜色等等。功能:洗衣、烘干等。

2、类的定义

在Java中定义类,使用关键字class完成。语法如下:

忽略一下报错,因为是用的中文。

class为定义类的关键字,ClassName为类的名字,{}中为类的主体。

类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。方法主要说明类具有哪些功能,称为类的成员方法。

看一个例子:定义一个学生类

采用Java语言将洗衣机类在计算机中定义完成,经过javac编译之后形成.class文件,在JVM的基础上计算机就可以识别了。
然后呢,类定义完成之后,肯定无法直接使用。如果要使用,必须依靠对象,那么由于类属于引用数据类型,所以对象的产生格式(两种格式)如下:

1、格式一:声明并实例化对象。

2、格式二:先声明对象,然后实例化对象。

引用数据类型与基本数据类型最大的不同在于:引用数据类型需要内存的分配和使用。所以,关键字new的主要功能就是分配内存空间,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。

3、实例化对象

当一个实例化对象产生之后,可以按照如下的方式进行类的操作:
对象.属性:表示调用类之中的属性;
对象.方法():表示调用类之中的方法。

举一个例子,来操作类:

运行结果如下:

因为我没初始化学号的原因,所以是null。

4、类的三大特性

封装

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象。

对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。使用封装有下面几个好处:

继承

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。

继承所描述的是“is-a”的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示A继承B,其中B是被继承者称之为父类或者超类,A是继承者称之为子类或者派生类。

实际上继承者是被继承者的特殊化,它除了拥有被继承者的特性外,还拥有自己独有的特性。例如猫有抓老鼠、爬树等其他动物没有的特性。同时在继承关系中,继承者完全可以替换被继承者,反之则不可以,例如我们可以说猫是动物,但不能说动物是猫就是这个道理,其实对于这个我们将其称之为“向上转型”。

多态

多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

所以对于多态我们可以总结如下:指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。

对于面向对象而言,多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。

到此这篇关于浅谈java类和对象的文章就介绍到这了,更多相关java类和对象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈java类和对象

本文链接: https://lsjlt.com/news/150209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈java类和对象
    目录一、面向对象的描述二、类和对象的基本概念三、类定义和使用1、简单认识类2、类的定义3、实例化对象4、类的三大特性封装继承多态一、面向对象的描述 面向对象是一种现在最为流行的程序设...
    99+
    2024-04-02
  • C++入门浅谈之类和对象
    目录一、面向过程vs面向对象二、类的限定符及封装三、类的实例化四、this指针五、默认成员函数1. 构造函数2. 析构函数3. 拷贝函数4. 赋值运算符重载总结一、面向过程vs面向对...
    99+
    2024-04-02
  • 浅谈Java面向对象之内部类
    目录内部类访问外部对象访问内部对象局部内部类匿名内部类静态内部类内部类 内部类是定义在另一个类中的类,例如 TalkingClock 类中内嵌了 TimePrinter 类: c...
    99+
    2024-04-02
  • 浅谈java对象的比较
    目录1、元素的比较2、类的比较3、比较方法3.1 重写equals方法3.2 基于Comparble接口类的比较3.3 基于比较器比较基于比较器比较:Comparator接口3.4 ...
    99+
    2024-04-02
  • 浅谈Java对象禁止使用基本类型
    目录1. 关于POJO类属性为基本类型存在的问题2. Java开发手册关于POJO类属性规范3. 基本数据类型默认值4. 测试验证1. 关于POJO类属性为基本类型存在的问题 在项目...
    99+
    2023-02-03
    Java对象禁止使用基本类型 Java 禁止基本类型
  • 浅谈java自定义中类两个对象的比较
    目录 实现比较两个对象是否相同 1.前置代码 1.学生类 2.示例  3.输出  4.原因 2.那么我们要怎么做呢 1.对Student类中重新实现quals方法(即对equals方法重写)  2.完整代码如下: 3.具体操作 4.演示 ...
    99+
    2023-09-20
    java 开发语言 学习 学习方法 程序人生 intellij-idea
  • 深入浅出分析Java类和对象
    目录一、什么是类二、Java的类和C语言的结构体异同三、类和类的实例化类的声明实例化的对象,成员遵循默认值规则类的实例化静态属性(静态成员变量)四、构造方法创建构造方法this一、什...
    99+
    2024-04-02
  • 浅谈JS包装对象
    目录概述定义实例方法原始类型与实例对象的自动转换自定义方法Boolean 对象概述Boolean 函数的类型转换作用Number 对象概述静态属性实例方法自定义方法String 对象...
    99+
    2024-04-02
  • 浅谈python中的面向对象和类的基本语法
    当我发现要写python的面向对象的时候,我是踌躇满面,坐立不安呀。我一直在想:这个坑应该怎么爬?因为python中关于面向对象的内容很多,如果要讲透,最好是用面向对象的思想重新学一遍前面的内容。这个坑是如...
    99+
    2022-06-04
    浅谈 面向对象 语法
  • 浅谈java object对象在heap中的结构
    目录对象和其隐藏的秘密Object对象头数组对象头整个对象的结构对象和其隐藏的秘密 java.lang.Object大家应该都很熟悉了,Object是java中一切对象的鼻祖。 接下...
    99+
    2024-04-02
  • 浅谈JS正则RegExp对象
    目录1、RegExp对象2、语法2.1 定义2.2 修饰符2.3 方括号2.4 元字符2.5 量词2.6 方法1、RegExp对象 正则表达式是描述字符模式的对象。 ...
    99+
    2024-04-02
  • 【JAVA】类和对象
    作者主页:paper jie的博客   本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将...
    99+
    2023-08-31
    java 开发语言
  • 谈谈Java中对象,类和this,super,static关键字的使用
    目录Java对象究竟是什么创建对象的过程创建多个对象时,内存的变化无处不在的this和super关键字static关键字 为何如此特殊Java对象究竟是什么 对象:对象是类的一个实例...
    99+
    2022-11-13
    Java 对象 类 关键字 Java 对象 Jav 类 Java 关键字 Java this super static
  • java web学习_浅谈request对象中get和post的差异
    阅读目录(Content)•1.get与post的区别•1.1 get方法 jsp中的代码form表单代码•1.2 action包中servlet的doGet方法中的代码•2.运行结果R...
    99+
    2023-05-31
    java request post
  • 浅谈Python 对象内存占用
    一切皆是对象 在 Python 一切皆是对象,包括所有类型的常量与变量,整型,布尔型,甚至函数。 参见stackoverflow上的一个问题 Is everything an object in pytho...
    99+
    2022-06-04
    浅谈 对象 内存
  • 浅谈Oracle数据库的对象
    Oracle数据库---对象中最基本的是表和视图,其他还有约束、索引、序列、函数、存储过程、甚至创建同义词。对数据库的操作可以基本归结为对数据对象的操作,因此,在上篇博文讲述了基本操作的基础上,本篇博文将介...
    99+
    2024-04-02
  • 浅谈Java中的内部类
    最近在讲Java中的内部类,感觉内部类实际上对于初学者用得不多,那么内部类简单的说,其实就是在一个类的内部定义的类。按照定义的情况分为:成员内部类,局部内部类,静态内部类,匿名内部类。成员内部类,就是定义一个当作类的成员变量的类。局部内部类...
    99+
    2023-06-02
  • Java 深入浅出解析面向对象之抽象类和接口
    目录抽象类声明抽象类声明抽象方法案例使用规则接口声明接口案例接口特性抽象类和接口的区别抽象类 java语言,声明类时 abstract class Db{} 说明Db类为抽象类。 j...
    99+
    2024-04-02
  • Java基础——类和对象
    目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法: 2. 创建具体的对象:  3.范例(创建一个Person 类的对象)  三、static关键字   (一)static修饰属性(类属性、类变量) (二)static...
    99+
    2023-10-05
    java
  • 【Java】类和对象详解
    文章目录 一、面向对象1.1 什么是面向对象1.2 面向对象与面向过程 二、类的定义和实例化2.1 类的定义2.2 类的创建2.3 类的实例化2.4 类和对象的联系 三、认识 this...
    99+
    2023-10-18
    java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作