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

【初始类和对象】

  • 前言
  • 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.hqwc.cn/news/688572.html

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

相关文章

本地运行.net项目

有时候需要我们自己做一个.net的课设项目,但是我们有了代码后却不知道怎么运行。我们0基础来学习一下如何运行一个.net项目 1.安装visual studio 2022 不用安装老版本,新版就可以。安装好了2022版本,这是一个支持web的IDE,我们可…

vue3父子组件相互调用方法详解

💟 上一篇文章 Vue2中父子组件互相传值和方法调用 📝 系列专栏 vue从基础到起飞 目录 1、前言 2、子组件调用父组件方法(setup组合式) 2.1 父组件Father.vue 2.2 子组件Child.vue 3、父组件调用子组件方法(setup组…

机器学习面试篇

如何理解机器学习数据集的概念 数据集是机器学习的基础,它包括了用于训练和测试模型所需的数据。数据集通常以矩阵的形式存在,其中每一行代表一个样本(或实例),每一列代表一个特征(或属性)。…

教你一招,一键解锁云盘与NAS自动同步!

想象一下 数字生活就像一座繁忙的都市 云盘是你的空中阁楼 俯瞰着整个城市的美景 而NAS是坚实的地基 承载着所有珍贵的记忆 那如何让数据在 城市的高空与地面之间自由穿梭呢? 别急!铁威马来帮你! TOS 6创新功能:云盘挂载 …

python实现星号打印出金字塔

#编程实现下列图形的打印 a input() for i in range(int(a)//21): num * * ((i1)*2-1) print(num.center(int(a), )) 编译后通过。输入20后得到下面的星号金字塔

Python专题:十一、集合

集合的初始化 . 字符串中的重复元素只能保留一个 数学中的集合操作 - 求两个集合的差集 & 求两个集合的交集 | 合并两个集合元素

电商购物系统商品数据结构设置

电商购物系统商品数据结构设置 如上图所示 , 该表为商品表关系的示意图 , 气质我们要溥仪一个电视购物系统要用到的知识那就是SPU和SKU 简单来说这两种就是不同的分类方式 , 我们在浏览淘宝等页面的时候也会遇见相同的情况如我们可以进行品牌的筛选 , 也可以进行商品价格的筛选…

无限集中的最小数字

题目链接 无限集中的最小数字 题目描述 注意点 1 < num < 1000 解答思路 由题意得&#xff0c;可以理解为最初集合中有1~1000之间的所有数字&#xff0c;如果集合中存在数字&#xff0c;则添加时不会有任何操作&#xff1b;在移除集合中的元素时&#xff0c;会按顺序…

【一支射频电缆的诞生】GORE 戈尔

工具连接&#xff1a; https://microwave-cablebuilder.gore.com/ 控制参数&#xff1a; 连接器&#xff1a; 欣赏

静态分析-RIPS-源码解析记录-02

这部分主要分析scanner.php的逻辑&#xff0c;在token流重构完成后&#xff0c;此时ini_get是否包含auto_prepend_file或者auto_append_file 取出的文件路径将和tokens数组结合&#xff0c;每一个文件都为一个包含require文件名的token数组 接着回到main.php中&#xff0c;此时…

收音机套件焊接和装调的总结

很早之前买了一个小收音机&#xff0c;今天翻出来焊接上。 还好&#xff0c;质量挺好的&#xff0c;电路板没有氧化。 一。静态电流 pcb上面留有ABCD四个测电流的位置。方便调试。 焊接后&#xff0c;V1电流偏大&#xff0c;如果电流过大&#xff0c;会导致R2的压降过大&am…

双目相机标定流程(MATLAB)

一&#xff1a;经典标定方法 1.1OPENCV 1.2ROS ROS进行双目视觉标定可以得到左右两个相机的相机矩阵和畸变系数&#xff0c;如果是单目标定&#xff0c;用ROS会非常方便。 3.MATLAB标定&#xff08;双目标定&#xff09; MATLAB用来双目标定会非常方便&#xff0c;主要是为…