1—类、域、方法和实例对象

2023-05-16

Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。

围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方案。

应用面向对象语言求解问题的基本思路是:首先分析问题并建立相应的对象,然后通过这些对象以及他们之间的配合解决问题,其中每个对象在计算机中占用一定的内存,同时能够完成一定的功能。

对象:即类的具体体现,鸟就是鸟类的具体体现,每一只鸟都是鸟类的对象

实例:也就是对象,因为对象也被称为类的实例化

类:即类别,所有的鸟都是鸟类,那么我们可以用一个bird类来概括鸟这一类别动物

域:即作用范围,就像中国公民在只中国具有中国公民的相关权利

方法:即类的行为,就像飞行是鸟类的共有行为,飞行这一方法就是bird类的方法


类、域、方法和实例对象

类(class):是实例对象的模板,类的定义格式是:

[类修饰词列表] class 类名 [extends 父类名] [implements 接口名称列表]

{

         类体

}

 

第一行内容成为“类定义的头部 ”或 “类的声明”

类的声明:

1. 修饰词列表:可选项。如果存在多个类修饰词,则在相邻两个类修饰词之间采用空格分隔开。类修饰词用来说明类的属性,包括public、abstract、final、和strictfp等。

         default:默认值,定义只能在本包中使用。

         public:定义类可以被java的所有软件包使用,否则定义类只能在当前软件包中使用。

         abstract:定义类是一个抽象类。

         final:定义类不能用作父类。不能被覆盖(不应用于动态查询)。

         strictfp:定义类中各个复电数的表示及运算严格遵循IEEE754算术国际标准。

         static:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。

2. 类名:类名可以是任意的合法标识符,若类的修饰词是public,则该类应当与所在文件名相同。在同一个Java源文件中可以包含多个类,但不能包含两个及以上具有public修饰词的类。

3. extends 父类名:指定所定义类的父类,所定义类将具有其父类所定义的一些属性和功能。在定义类时如果不含有选项“extends 父类名”,则上面定义的类的父类是“java.lang.Object”,即不含选项“extends 父类名”与包含选项“extends java.lang.Object”具有相同的功能。类java.lang.Object是除了其自身外的所有类的直接或间接父类。

4. implements 接口名称列表:具有该属性,表明定义类是实现了这些给定接口的类,即定义类将具有这些给定接口的属性和功能。当包含多个接口时,接口之间采用逗号分隔。

 

类体

在类体部分可以定义类的构造方法和类的两类成员要素:成员域(field)和成员方法(method)


类的成员域简称为域,通常用来表示和存储类所需要的数据,其格式为:

 

[域修饰词列表]  类型 变量名或带初始化的变量名列表;

 

1、域修饰词列表:可选项,可以0个或多个,若存在多个,相邻两个域修饰词之间采用空格分隔开。域修饰词通常包括public、protected、private、static、final、transient和volatile。修饰词public、protected和private不能同时存在,它们表示当前定义成员域的访问控制属性,即当前定义的成员域的应用范围。

         static:表明当前定义的成员域是静态的。

         final:要求立即对当前的成员域赋值(必须进行初始化变量),且赋值之后不能再修改该域的值。

         transient:表明当前成员域是一种暂时的成员域,即当进行对象保存时可以不必保存当前的成员域。

         volatile:主要用在多线程程序设计中,表明在访问当前成员域时将采用同步机制。

2、类型:指定当前成员域的类型。可以是基本数据类型,如 int,也可以是引用数据类型,如 类名。

3、变量名或带初始化的变量名列表:可以包含1个或多个变量名,每个变量名是一个合法的标识符,若含有多个变量名,则相邻变量名或带初始化的变量名之间采用逗号分隔开。包含多个变量名时,实际定义了多个成员域,即每个变量名对应一个成员域。带初始化的变量名实际是包含赋值运算,如:int m_radius=0;

 

类的成员方法简称为方法,通常用来实现类的各种功能,其格式为:

 

[方法修饰词列表]  返回类型  方法名(方法的参数列表)

{

方法体

}

方法声明

第一行的内容为成员方法定义的头部或者当前定义的成员方法声明。

 

1、方法修饰词列表:可选项。通常包括public、protected、private、abstract、static、final、synchronized和strictfp。方法修饰词public、protected和private不能同时存在,它们表示当前定义的成员方法的访问控制属性,即当前成员方法的封装性。

         abstract:表明当前成员方法是抽象成员方法。抽象成员方法不能包含有方法体。

         static:表明当前定义的成员方法是静态的。

         final:当前成员方法所在类的子类中不能出现与当前成员方法相同的声明。

         synchronized:表明当前成员方法是一种同步成员方法。

         strictfp:表明在当前成员方法中各个浮点数的表示及其运算严格遵循IEEE算术国际标准。

2、返回类型:指定当前成员方法返回的数据的数据类型。可以是基本数据类型,如:int;也可以是引用数据类型,如:类型。若成员方法不返回任何数据,则应当在返回类型处写上关键字 void,否则编译将出错。

3、方法名:一个合法的标识符,用来表示当前的成员方法。

4、参数列表:可包含0个或多个,在参数列表处除了空格之外,不含任何字符时,表明该参数列表不含任何参数。需注意,不能再参数列表处写上关键字void,否则编译将出错。在参数列表中包含多个参数时,参数之间采用逗号分隔开。每个参数的格式是:

 类型  参数变量名


方法体

通常由一些语句组成,主要用来实现当前成员方法的功能。


类的构造方法

主要用来创建类的实例对象,通常同时完成新创建的实例对象的初始化工作。

定义构造方法的格式:、

【构造方法修饰词列表】类名(方法的参数列表)

{

    方法体

}

构造方法具有以下三个基本特点:

(1)构造方法名必须与类名相同

(2)构造方法不具有任何返回类型

(3)任何一个类都含有构造方法


创建类的实例对象可以通过new运算符和类的构造方法


其格式为:

new 构造方法名(构造方法调用参数列表)


通过该变量访问该实例对象的成员域的格式为:

变量名.成员域名

变量名.成员方法名(成员方法调用参数列表)


类的实例对象的生命周期包括实例对象的创建、实例对象的使用、实例对象的废弃以及垃圾的回收。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1—类、域、方法和实例对象 的相关文章

  • Podman 使用指南

    原文链接 xff1a Podman 使用指南 Podman 原来是 CRI O 项目的一部分 xff0c 后来被分离成一个单独的项目叫 libpod Podman 的使用体验和 Docker 类似 xff0c 不同的是 Podman 没有
  • ClickHouse查询语句详解

    ClickHouse查询语句兼容大部分SQL语法 xff0c 并且进行了更加丰富的扩展 xff0c 查询语句模板如下 xff1a WITH expr list subquery SELECT DISTINCT ON column1 colu
  • Mysql和Redis如何保证数据一致性

    文章目录 前言一 先更新数据库 xff0c 再更新redis二 先更新redis xff0c 在更新数据库三 先更新数据库 xff0c 再删除redis四 先删除redis xff0c 再更新数据库总结 前言 如何保证数据库和缓存双写一致
  • SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)

    文章目录 前言 一 概念 二 例子 总结 前言 最近在做SQL相关的练习 发现以前那么自信的SQL放久了不碰也变得棘手起来 特别是这一块表之间的内外连接 所以这篇是关于这个内外连接的整理 一 概念 首先还是介绍一下这三个的定义 1 Left
  • UCOSII之项目实战总结

    电子IT行业博大精深 xff0c 没有人能够用笔记本天天记录自己所学的知识 xff0c 于是乎 xff0c 撰写博客就成了每个 IT民工 的专长 再者 xff0c 写一篇博客 xff0c 其意义与不但记录了自己所需的知识 xff0c 更提高
  • 明白了一句话:“加速度信号对高频敏感,位移信号对低频敏感”

    以前听别人说这些 xff0c 然后记住了 但是一直不大理解 最近在调试IEPE传感器 xff0c 正好要算位移 速度 加速度 对于相同的速度 xff0c 频率越高 xff0c 加速度值就越大 因为从公式就能看出来 xff0c 对于固定频率的
  • ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,报symbol lookup error和undefined symbol错误的解决办法

    在ubuntu 16 04使用IntelRealSense D435i调用realsense ROS包时 xff0c 运行 roscore roslaunch realsense2 camera rs rgbd launch 出现错误 xf
  • Android浪潮

    Google的Android手机就要席卷世界了 xff01 IT技术的发展常常太出人意料 xff0c 我也想不太清楚Google的Android平台究竟吸引人在哪里 xff0c 但我相信Android会很快改变手机平台的格局 新的形势会出人
  • 卡尔曼滤波相关介绍及优缺点

    1 卡尔曼滤波算法为什么会叫滤波算法 xff1f 以一维卡尔曼滤波为例 xff0c 如果我们单纯的相信测量的信号 xff0c 那么这个信号是包含噪声的 xff0c 是很毛糙的 xff0c 但是当我们运行卡尔曼滤波算法去做估计 xff0c 我
  • STM32单片机(五)-寄存器地址理解和控制LED闪烁

    芯片 xff1a stm32f103zet6 1 存储单元一般应具有存储数据和读写数据的功能 一般以8位二进制作为一个存储单元 也就是一个字节 每个单元有一个地址 是一个整数编码 可以表示为二进制整数 2 stm32是32位单片机 xff0
  • 跨平台构建 Docker 镜像新姿势,x86、arm 一把梭

    点击 34 阅读原文 34 可以获得更好的阅读体验 在工作和生活中 xff0c 我们可能经常需要将某个程序跑在不同的 CPU 架构上 xff0c 比如让某些不可描述的软件运行在树莓派或嵌入式路由器设备上 特别是 Docker 席卷全球之后
  • 正点原子STM32F4笔记

    使用寄存器操作 xff0c 不错的博客 xff1a https blog csdn net w471176877 article category 1230060 https blog csdn net w471176877 article
  • JAVA中this用法小结

    我知道很多朋友都和我一样 xff1a 在 JAVA 程序中似乎经常见到 this xff0c 自己也偶尔用到它 xff0c 但是到底 this 该怎么用 xff0c 却心中无数 xff01 很多人一提起它 xff0c 就说 当前对象 xff
  • Linux Platform总线+SPI总线分析

    2015 07 1 11 20 本文以MPC8308 powerpc架构 xff0c HX软件包为依据 xff0c 详细内容可参考源码 CPU e300c3MPC8308 400MHz BOARD Freescale MPC8308ERDB
  • ubuntu下SD卡分区与挂载

    本来只是想借SD卡来做一个OK6410的升级 但笔记本上只装了ubuntu xff0c 一开始是可以识别sd卡的 xff0c 但按照网上的教程不小心将 dev sdb1删除了 导致ubuntu不能识别sd卡了 记录一下解决过程 1 sd的设
  • 信号量与互斥锁的一些理解

    一直对信号量和互斥锁只有一个模糊的认识 xff0c 今天特别学习了 xff0c 总结一下 一 从作用上来讲 互斥锁是用在多线程多任务互斥的 信号量用于线程的同步 二 从原理上讲 线程互斥锁 pthread mutex t 的实现原理 xff
  • springboot2.x +kafka使用和源码分析九(KafkaListenerEndpointRegistry暂停启动容器)

    我们在运行中如果需要暂停启动容器时可以通过此类KafkaListenerEndpointRegistry来处理 KafkaListenerEndpointRegistry源码 只解释了核心代码 public class KafkaListe
  • H3C 交换机配置命令

    H3C 交换机配置命令 三层和二层交换机配置命令 dis this 查看下属命令 save 保存 reboot 重启 初始化命令和提示选项 reset saved configuration 初始 清除所有配置信息后 提示是否初始化 xff
  • 【粒子群算法整定PID参数】MATLAB2016b(02一些细节问题)

    此帖主要针对01帖的细节方面 很抱歉更新的晚了 xff0c 现在我对01帖发布到现在 xff0c 用粒子群算法整定PID参数时存在的细节问题进行讲解 xff0c 以便于帮助大家学会此方法 xff0c 降低整定参数的难度 问题一 xff1a

随机推荐