【初始类和对象】(实例讲解!超级详细!)

【初始类和对象】

  • 前言
  • 1. 面向对象的初步认知
    • 1.1什么是面向对象
    • 1.2 面向对象与面向过程
  • 2. 类的定义和使用
    • 2.1 简单认识类
    • 2.2 类的定义格式
  • 3. 知识的代码举例讲解
    • 3.1 创建类、实例化类
    • 3.2 构造方法初始化类、this
  • 3. 总结

前言

由于类和对象是我们在学习过程中需要接受的概念性新知识,所以我会先带大家简单理解一下类和对象的基本概念,然后直接通过代码举例来深入学习,最后总结知识。以此达到更好的学习效果!
在这里插入图片描述
正文开始!!!

1. 面向对象的初步认知

1.1什么是面向对象

Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。

1.2 面向对象与面向过程

下面通过洗衣服的例子向大家解释面向对象和面向过程两个概念。
在这里插入图片描述

传统的洗衣过程(面向过程)传统的方式:注重的是洗衣服的过程,少了一个环节可能都不行。而且不同衣服洗的方式,时间长度,拧干方式都不同,处理起来就比较麻烦。如果将来要洗鞋子,那就是另一种放方式。按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。
现代化的洗衣(面向对象)以面向对象方式来进行处理,就不关注洗衣服的过程,具体洗衣机是怎么来洗衣服,如何来甩干的,用户不用去关心,只需要将衣服放进洗衣机,倒入洗衣粉,启动开关即可,通过对象之间的交互来完成的。

注意:面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景。

2. 类的定义和使用

2.1 简单认识类

类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。

在这里插入图片描述

2.2 类的定义格式

上述我们对狗进行了描述,那么我们应该如何使用Java语言对类进行定义呢?

//创造类
class Dog(){
//字段(属性)或成员变量public String name;public int age;public String color;
//行为或成员方法public void test(){System.out.println("小狗乖乖,小狗乖乖~");}
}

class 是创造类的关键词,Dog 是类的名字,{ } 内的是类的主体
类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。方法主要说明类具有哪些功能,称为类的成员方法

3. 知识的代码举例讲解

3.1 创建类、实例化类

在这里插入图片描述
上述的完整代码如下:

public class Dog {//成员变量public String name;public int age;public String color;//普通方法public void test(){System.out.println("小狗乖乖,小狗乖乖~");}//普通方法public void printDog(){System.out.println(name+this.age+"岁了,是只"+color+"的小狗");这里使用或者不适用“this.”都可以}public static void main(String[] args) {//利用关键词new实例化一个对象Dog dog=new Dog();//访问对象中的成员变量dog.name="红包";dog.age=2;dog.color="黄色";//访问对象中的成员方法//测试dog.test();//打印对象dog.printDog();
}

在这里插入图片描述

3.2 构造方法初始化类、this

介绍构造方法
在这里插入图片描述

构造方法的重载

在这里插入图片描述

补充:this 的三种用法

在这里插入图片描述

3. 总结

在这里插入图片描述
我们回到文章开头的学习目标:

定义类的语法:
class(关键字) Dog(类名){
成员变量;
成员方法
}

创建对象:
Dog(类名) dog(对象名)=new(关键字) Dog();
//()中如何书写取决去其构造方法,若未书写构造方法,编译器会自动为该类生成一个默认的无参构造方法。使用()就行

访问成员变量和成员方法:
使用 . 来访问
dog.name;
dog.test();

this 的用法:
在这里插入图片描述

构造方法目的就是完成初始化:
public Dog(必须和类名相同){
完成初始化;
}
//若未书写构造方法,这个默认构造方法不包含任何代码,只是简单地调用父类的无参构造方法。因此,即使一个类没有声明构造方法,程序也可以正确执行。
此时,引用类型被初始化为NULL,基本类型被初始化为0

🆗!这篇文章到此结束!!!希望对大家有所帮助!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI赋能未来教育:中国教学科研新蓝图

设“人啊 前言 回顾过去,传统的教育模式以知识灌输和应试为主,虽培养出大量人才,但也存在着学生创新能力不足、实践经验缺乏等问题。随着时代的进步和科技的发展,传统教育模式已难以满足当今社会对人才的需求。然而,当…

LoadIncrementalHFiles 流程和原理

目录 1. HBase Bulk Load 简介 2. 流程 3. 原理 4. 使用注意事项 5.补充说明之"什么是移动文件" 1. HBase Bulk Load 简介 LoadIncrementalHFiles是用于HBase的Bulk Load工具,允许用户高效地将大量数据直接加载到HBase表中,而不是使用传…

中国现代十大杰出人物颜廷利:好的司机不如好的同机

找好‘同机’者, 要比找好‘司机’者, 原因就是, ‘司机’虽好, 但不是‘同路人’, 再多努力的攀附都是徒劳, 至于‘同机’者, 即便是对方在自己的眼里心中都一无是处, 只不过, 他/她才是您旅途之中, 真真正正、风雨同舟的人…(升命学说) 21世纪东方哲学家思想家、科学家、当代…

孩子学编程和不学编程的差距?

随着信息技术的飞速发展,编程已经成为一项非常重要的技能,不仅仅是在计算机领域,而且在各个行业都有着广泛的应用。因此,让孩子学习编程已经成为很多家长的选择。那么,孩子学习编程和不学习编程之间有哪些差距呢&#…

TODESK远控快捷键在哪里

在当今高度数字化的世界中,远程工作和协作已经成为日常生活和业务运营的重要组成部分。Todesk作为一款出色的远程协作软件,为用户提供了诸多功能,以确保流畅、高效的远程连接体验。其中,快捷键功能极大地提升了用户的操作便捷性。…

高速、简单、安全的以太彩光,锐捷网络发布极简以太全光 3.X 方案

从 2021 年 3 月正式推出到现在,锐捷网络极简以太全光方案已经走进第四个年头。IT 仍在不断向前发展,数字化进程深入,数字化业务增多,更广泛的终端设备接入企业级园区网络,对园区网络提出了更高的要求,例如…

GDB断点执行的次数

需求背景:条件断点可能执行多次,但是可能在最后一次执行引发了后续的问题,但是断点位置并非问题现场,如何使得断点在最后一次停下来? 方法: 1.首先设置条件断点 (gdb) b (gdb) cond breakpoint_number…

Linux NFS共享目录配置漏洞

Linux NFS共享目录配置漏洞 一、实验目的二、实验原理三、复现准备四、漏洞复现4.1、复现前提4.2、正式复现 一、实验目的 利用 NFS共享目录配置漏洞读取目标主机的 /etc/passwd 文件内容NFS 服务配置漏洞,赋予了根目录远程可写权限,导致 /root/.ssh/au…

关系型数据库VS非关系型数据库

数据库是存储和组织数据的系统,主要分为两大类: 关系型数据库(Relational Database Management Systems, RDBMS) 非关系型数据库(NoSQL Databases) 下面分别介绍这些类型及其区别: 关系型数…

im8mm 网络卡死 Rx packets:1037578 errors:66 dropped:0 overruns:66 frame:0

1:网络接收数据包异常 2:问题复现 问题在进行网络数据包同吞吐量测试的时候出现的。同时发现,在使用iperf2测试时,是不会出现网络中断卡死的情况,使用 iperf3时才会出现此问题 指令(下面的指令运行在PC2上面&#xff…

AGV混合型电机驱动器|伺服控制器CNS-MI50H系列对电机的要求

混合型电机驱动器 CNS-MI50H系列涵盖CNS-MI50HB-A、CNS-MI50HBN-A、CNS-MI50HDN-A、CNS-MI50HSN-A型号,专为 AGV 舵轮控制需求设计,集成舵轮转向角度控制和驱动电机闭环控制。支持增量式编码器,霍尔传感器, 角度电位计&#xff0c…

自动化测试基础 --- Jmeter

前置环境安装 首先我们需要知道如何下载Jmeter 这里贴上下载网站Apache JMeter - Download Apache JMeter 我们直接解压,然后在bin目录下找到jemter.bat即可启动使用 成功打开之后就是这个界面 每次打开可以用这种方式切换成简体中文 或者直接修改properties文件修改对应的语言…

目标检测算法YOLOv8简介

YOLOv8论文尚未发布,YOLOv8由Ultralytics公司推出并维护,源码见:https://github.com/ultralytics/ultralytics ,于2024年1月发布v8.1.0版本,最新发布版本为v8.2.0,License为AGPL-3.0。 以下内容主要来自&am…

FFmpeg 中 -f 命令参数详解

FFmpeg FFmpeg是一个开源的、功能强大的多媒体框架,它能够处理几乎所有格式的音频和视频文件。FFmpeg由Fabrice Bellard创立,并由Michael Niedermayer等人继续开发。它包括了libavcodec(用于编解码)、libavformat(用于格式转换)、libavfilter(用于音视频过滤)、libavd…

微信授权登录01-PC端

目录 ## 前言 1.准备工作 1.1 网站域名 1.2 微信开放平台 2.授权授权登录开发 2.1 前端开发 2.1.1 发起授权登录跳转至扫码页面 2.1.2 扫码成功后回调处理 2.2 后端开发 2.2.1 根据code查询用户信息 2.2.2 自动注册登录 ## 后记 ## 前言 最近整了个AI助手网站&am…

React 学习-5

React 条件渲染: 与js中的写法一致 注意:在 JavaScript 中,true && expression 总是返回 expression,而 false && expression 总是返回 false。 因此,如果条件是 true,&& 右侧的元素就会被渲…

BL120协议Modbus RTU和Modbus TCP互转

Modbus网关BL120是一款专注于Modbus协议之间相互转换的通信设备。Modbus网关BL120支持多种下行采集协议,包括Modbus RTU和Modbus TCP,同时在上行转发协议方面同样支持Modbus RTU和Modbus TCP。Modbus网关为Modbus RTU和Modbus TCP协议的相互转换提供了稳…

回炉重造java----单列集合(List,Set)

体系结构: 集合主要分为两种,单列集合collection和双列集合Map,区别在于单列集合一次插入一条数据,而双列的一次插入类似于key-value的形式 单列集合collection 注:红色的表示是接口,蓝色的是实现类 ①操作功能: 增加: add()&am…

SRS流媒体服务器在Linux下的安装

目录 一、安装 1、切换到管理员权限 2、先安装基础依赖环境 3、下载SRS源文件

引领AI数据标注新纪元:景联文科技为智能未来筑基

在人工智能蓬勃发展的今天,数据如同燃料,驱动着每一次技术飞跃。在这场智能革命的浪潮中,景联文科技凭借其深厚的专业实力与前瞻性的战略眼光,正站在行业前沿,为全球的人工智能企业提供坚实的数据支撑。 全国布局&…