【类和对象+this引用】

news2024/9/22 15:36:53

文章目录

  • 面向对象与面向过程
  • 面向对象关注的是对象,用类描述这个对象
    • 如何定义类
    • 如何更改类名
  • 类的实例化
  • this引用
  • 总结


面向对象与面向过程

面向对象就是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。

面向过程好比传统的洗衣服方式
注重的是洗衣服的过程,少了一个环节可能都不行。
面向过程就是要关注洗的方式,时间长度,拧干方式等一系列详细步骤,所以处理起来就比较麻烦
在这里插入图片描述

面向对象好比现代洗衣服方式:
只有四个对象:人,衣服,洗衣粉,洗衣机
人不需要关注洗衣机具体是怎么洗衣服的,是如何甩干的。
在这里插入图片描述

java主要研究面向对象

面向对象关注的是对象,用类描述这个对象

如何定义类

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

// 创建类
class ClassName{
public String name; // 字段(属性) 或者 成员变量 定义在类当中,方法外部的变量

// 行为 或者 成员方法
   public void sleep(){

   }
}

类中具体成员变量分为两种

class Person{
    //普通成员变量
    public String name;

    //普通成员方法
    public void sleep(){

    }

    //静态成员变量
    public static int count;

    //静态成员方法
    public static void Sum(){

    }
}

注意事项:

  1. 类名注意采用大驼峰定义

  2. 成员前写法统一为public(访问限定修饰符)

  3. 此处写的方法不带 static 关键字**

  4. 一般一个文件当中只定义一个类

  5. main方法所在的类一般要使用public修饰

  6. public修饰的类必须要和文件名相同

  7. 不要轻易去修改public修饰的类的名称,因为一个java文件有多个类就改不了

如何更改类名

在这里插入图片描述

类的实例化

class PetDog{
    public String name;
    public String eat;

    public void eat(){
        System.out.println(name+"吃剩饭");
    }
}
public class Test {
    public static void main(String[] args) {
        //实例化 =》实例化出来就是一个真正的实体
        //通过new关键字可以实例化多个对象
        PetDog petDog =new PetDog();
        petDog.name="花花";
        petDog.eat();

        PetDog petDog2 =new PetDog();
        petDog2.name="耀耀";
        petDog2.eat();

    }
}

在这里插入图片描述

注意事项

  1. new 关键字用于创建一个对象的实例。
  2. 使用 . 来访问对象中的属性和方法。
  3. 同一个类可以创建多个实例。

this引用

什么是this引用

this引用指向当前对象,在成员方法中所有成员变量的操作,都是通过该 引用去访问。

重要性:定义成员方法时,务必加上this.

public class Date {
    //成员变量
    public int year;
    public int moth;
    public int day;
    //成员方法
    public void setDay(int y,int m,int d){
    //this的作用是当调用很多方法时,变量不知道给谁赋值,用this.修饰变量,就表明谁调用这个方法this就给谁赋值
      this.year=y;
      this.moth=m;
      this.day=d;
    }
    //打印方法
    public void print(){
        System.out.println("year:"+year+" "+"moth"+" "+moth+" "+"day:"+day);
    }

    public static void main(String[] args) {
        //实例化对象
        Date date=new Date();
        date.setDay(2023,10,22);
        date.print();

        Date date1=new Date();
        date.setDay(2003,06,05);
        date.print();

    }
}

this引用的特性

  1. this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型
  2. this只能在"成员方法"中使用
  3. 在"成员方法"中,this只能引用当前对象,不能再引用其他对象
  4. this是“成员方法”第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法对象的引用传递给该成员方法,this负责来接收

总结

类和对象+this引用便是今天学习的内容,这几天复习的知识多,怕是要忘了,恨不得一天48个小时,加上学校的事情好多,明早抽到了我上台讲ppt,下午古代文学史抽背,放学普通话考试,明天又是高度紧张的一天,鸭梨大啊鸭梨大。

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

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

相关文章

【RNA world】RNA的多功能性与早期生命进化

文章目录 RNARNA plays core functions in Central Dogma of BiologyrRNAsnRNA RNA worldReplication催化作用感知环境变化并作出响应 来自Manolis Kellis教授(MIT计算生物学主任)的课 油管链接:6.047/6.878 Lecture 7 - RNA folding, RNA wo…

[尚硅谷React笔记]——第5章 React 路由

目录: 对SPA应用的理解对路由的理解前端路由原理路由的基本使用路由组件与一般组件NavLink的使用封装NavLink组件Switch的使用解决样式丢失问题路由的模糊匹配与严格匹配Redirect的使用嵌套路由向路由组件传递params参数向路由组件传递search参数.向路由组件传递st…

【Docker从入门到入土 3】Docker镜像的创建方法

Part3 一、Docker镜像1.1 镜像的概念1.2 镜像结构的分层 二、Docker镜像的创建2.1 基于现有镜像创建2.1.1 创建思路2.1.2 举个例子 2.2 基于本地模板创建2.3 基于Dockerfile 创建 三、Dockerfile 详解3.1 Dockerfile 操作指令3.1.1 常用的操作指令3.1.2 CMD和ENTRYPOINT的区别…

【Java基础面试四十一】、说一说你对static关键字的理解

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说一说你对static关键字…

hdlbits系列verilog解答(异或非门)-08

文章目录 wire线网类型介绍一、问题描述二、verilog源码三、仿真结果 wire线网类型介绍 wire线网类型是verilog的一种数据类型,它是一种单向的物理连线。它可以是输入也可以是输出,它与reg寄存器数据类型不同,它不能存储数据,只能…

文件系统相关

文件系统部分的大纲要求: 文件系统的全局结构:文件系统在外存中的结构,文件系统在内存中的结构外存空闲空间管理办法虚拟文件系统文件系统挂载 一、文件系统的层次结构 可分为三个层次:最低层是对象及其属性,中间层…

物证管理系统|智物证DW-S404是一套成熟系统

系统背景 我司物证智能管理系统(智物证DW-S404)是一套成熟系统,依托互3D技术、RFID技术、数据库技术、AI、视频分析技术对物证进行统一管理、分析的信息化、智能化、规范化的系统。 物证是公安或者监狱处理案件的关键凭证,针对过…

3交换机的配置与使用

越来越发觉大学的教程是真好,虽然说深度可能不太够,但作为入门实在太好了。中国也有公开课,推荐中国大学MOOC,感谢网易有道与高教社。 最近特别累、活也特别多,所以学习的时间少了很多。但看到MOOC之后,又…

软件测试(六)自动化测试 Junit5

Junit5 selenium是自动化测试框架(写自动化测试用例)Junit单元测试框架(管理写好的测试用例) 注解:Test,Disable ,BeforeAll,AfterAll,BeforeEach,AfteEach…

操作系统——多个类别产品的生产者-消费者问题(王道视频p33、课本ch6)

1.问题解剖——得到的是 1个“互斥信号量” 3个“同步信号量” 其中特别注意,对于盘子plate可以清空的设计4个对象的,但是只用这一个同步信号量就可以实现 2.代码—— 3.由于这里的同步信号量的初值都是1,所以,即使不设置互斥信…

04.Finetune vs. Prompt

目录 语言模型回顾大模型的两种路线专才通才二者的比较 专才养成记通才养成记Instruction LearningIn-context Learning 自动Prompt 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜索 语言模型回顾 GPT:文字接龙 How are __. Bert&a…

大语言模型(LLM)综述(二):开发大语言模型的公开可用资源

A Survey of Large Language Models 前言3. RESOURCES OF LLMS3.1 公开可用的模型CheckPoints或 API3.2 常用语料库3.3 库资源 前言 随着人工智能和机器学习领域的迅速发展,语言模型已经从简单的词袋模型(Bag-of-Words)和N-gram模型演变为更…

RK3568 USB驱动开发

一.USB的DTS配置说明 1.USB 2.0 控制器 DTS 1.1 USB 2.0 Host 控制器 DTS USB 2.0 Host0 控制器 (EHCI & OHCI) 的DTS为例: 其中,EHCI 控制器的 compatible 固定为 “generic-ehci”,OHCI 控制器的 compatible 固定为 “genericohci”…

39.克鲁斯卡尔(Kruskal)算法

一言 已知n个顶点,选n-1条最短的边,不可成环。 概述 克鲁斯卡尔(Kruskal)算法是用来求加权连通图的最小生成树的算法。其基本思想是按照权值从小到大的顺序选择n-1条边,保证这n-1条边不构成回路。 这就要求要首先构…

写给Java/Android开发者的Python入门教程

1. 前言 对于Java/Android开发工程师来说,已经掌握了Java语言,这时再学其他语言(C/C除外),都是比较容易的,可能花上几个小时就能入门了。 作为一个Android开发工程师,今天一时兴起,学了下Python&#xff0…

初识进程以及父子进程

一 进程概念 什么是进程呢?许多资料都说一个已经加载到内存的程序就叫进程,意思是只要代码到了内存就能跑起来了吗?接下来我就谈谈对进程概念的理解。 1 如何管理进程 我们可能运行多个进程,这些进程有些结束,有些要退出&#x…

yolov5自己的数据集制作

文章目录 一、制作数据集1、创建文件夹结构如下2、将之前的图片以及标注数据放入mydata文件夹3、新建一个mydata.yaml文件 二、基于数据集训练模型1、基于数据集训练模型2、开始根据制作好的数据集训练模型3、模型训练结束 三、部署模型 文章参考博主:风吹落叶花飘荡…

Power BI 傻瓜入门 6. 从动态数据源获取数据

本章内容将介绍 发现如何从关系数据库和非关系数据库中提取数据学习如何使用Power BI使用在线和实时数据源跨多个数据源应用分析服务使用Power BI通过静态和动态数据解决纠正措施 数据有时可能有点复杂。诚然,上传一个包含几个电子表格的文件,或者一个…

计算机中整数的补码表示及二进制数轮

为了同学们能理好的理解数在计算机内的表示,我们可以把计算机中的整数看成N位进制数的数轮,N一般为2的幂,如下: 我们来举个例子:如果用4位二进制来表示整数,则可以表示的整数范围为-8(即&#x…