Java类和对象(一文读懂)

文章目录

  • 类、对象是什么?
  • 创建类
    • 构造器
  • 创建对象

类、对象是什么?

:类是一个模板,它描述一类对象的行为和状态。类可以看成是创建 Java 对象的模板。

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

**方法:**方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程,Java里的方法不能独立存在,所有的方法必须定义在类里。

类是一个模板,它包含一类对象的属性(状态)和行为,类的作用是用来描述对象。

对象是类的具象化,相当于在类的模板中描述具体的属性(状态),这些属性的集合就是一个对象,又因为具体属性的内容不同而分为不同的对象,但是它们属于同一类

方法,也叫函数,它是类或对象行为的抽象描述,一个单独的描述就是一个方法,方法不能单独存在,只能被定义在类里面。

如下图,以狗的种类来理解类和对象:

在这里插入图片描述

创建类

public class Dog {//类的状态String breed;int size;String colour;int age;	//类的方法void eat() {}void run() {}void sleep(){}void name(){}
}

上面是一个简单的类,它分别定义了4个自己的属性和方法,用来描述对象的状态和行为。

构造器

  • 每个类都有构造器。如果没有显式地为类定义构造器,Java 编译器将会为该类提供一个默认构造器。
  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须调用的,构造器有以下两个特点
  1. 和类的名字相同
  2. 没有返回类型,也不能写void

一个类在创建时必须有至少一个构造器,也叫构造方法,它必须与类同名,一个类可以有多个构造器。

public class Puppy{public Puppy(){}public Puppy(String name){// 这个构造器仅有一个参数:name}
}

创建对象

对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:

声明:声明一个对象,包括对象名称和对象类型。

实例化:使用关键字 new 来创建一个对象。

初始化:使用 new 创建对象时,会调用构造方法初始化对象。

Java创建对象需要进行声明,也就是先创建一个类,然后进行实例化,因为类是抽象的,需要实例化为对象,最后进行初始化,如果不进行初始化,对象输出的值会是默认值,在初始化时需要用到构造器(构造方法)。

以下是一个创建对象的过程:

public class Puppy{public Puppy(String name){//这个构造器仅有一个参数:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String[] args){// 下面的语句将创建一个Puppy对象Puppy myPuppy = new Puppy( "tommy" );}
}

这段代码先创建了一个类,然后引用了一个类构造器定义了一个参数,接着对该参数进行输出。然后他用new创建了一个puppy对象,名字叫myPuppy,myPuppy前面的Puppy实际上是类名,并不是构造器(由于构造器和类名是相同的,对此不要混淆),使用new关键字的过程,本质上就是在调用构造器

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

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

相关文章

环境与分支的详细介绍及其关联(开发、测试、预发布、生产)

文章目录 前言一、开发环境(dev)二、测试环境(test)三、预发布环境(pre)四、生产环境(pro)五、环境与分支的关系总结 前言 在现代软件开发中,前端项目的开发和部署往往需…

【golang】数组和切片底层原理

数组类型的值(以下简称数组)的长度是固定的,而切片类型的值(以下简称切片)是可变长的。 数组的长度在声明它的时候就必须给定,并且之后不会再改变。可以说,数组的长度是其类型的一部分。比如&a…

RISC-V在快速发展的处理器生态系统中找到立足点

原文:RISC-V Finds Its Foothold in a Rapidly Evolving Processor Ecosystem 作者:Agam Shah 转载自:https://thenewstack.io/risc-v-finds-its-foothold-in-a-rapidly-evolving-processor-ecosystem/ 以下是正文 But the open source pr…

理解-面向对象

目录 对象: 举例: 封装: 好处: 继承: 多态: 类和对象之间的关系 对象: 把一个东西看成对象,我们就可以孤立的审查它的性质,行为,进而研究它和其他对象的关系。 对象是一个应用系统中用…

Cobbler自定义yum源

再次了解下Cobbler的目录结构: 在/var/www/cobbler/ks_mirror目录下存放的是所有的镜像。 存放的是仓库镜像: 在/var/lib/cobbler/kickstarts目录下是存放的所有的kickstarts文件。 再有就是/etc/cobbler这个目录: [rootvm1 loaders]# cd /…

Dubbo1-架构的演变

分布式系统上的相关概念 项目:传统项目、互联网项目 传统项目: 一般为公司内部使用,或者小群体小范围的使用,一般不要求性能,美观,并发等 互联网项目的特点: 1.用户多 2.流量大,并…

【分布式系统】聊聊分布式事务中原子性

什么是分布式事务 在分布式系统中,一个是计算问题,也就是将多个任务,通过流控技术把不同的流量分发给不同的服务器进行处理。另一个就是存储,而只要设计的存储,就必然会引入从单体事务中衍生除的分布式事务问题。 事务…

分布式应用:Zabbix自定义监控模板

目录 一、理论 1.zabbix监控模板 2.在客户端创建自定义 key 3.在 Web 页面创建自定义监控项模板 4.设置邮件报警 二、实验 1.在客户端创建自定义 key 2.在 Web 页面创建自定义监控项模板 3.设置邮件报警 三、问题 1.查看动作发送邮件失败 四、总结 一、理论 1.zab…

Day 74:通用BP神经网络 (1. 集中管理激活函数)

代码: package dl;/*** Activator.*/public class Activator {/*** Arc tan.*/public final char ARC_TAN a;/*** Elu.*/public final char ELU e;/*** Gelu.*/public final char GELU g;/*** Hard logistic.*/public final char HARD_LOGISTIC h;/*** Identit…

Seata - 入门笔记

1、事务 访问并可能更新数据库中数据库中各种数据线的一个程序执行单元 原子性:事务是一个不可分割的工作单位,一个事务要么都做要么都不做 一致性:必须是使数据库从一个一致性到另一个一致性的状态,中间状态不能被观察到 隔离…

WebRTC | 音视频实时通信的本质

目录 一、音视频实时通信的两种指标 1. 实时通信延迟指标 2. 视频相关的基本概念 3. 音视频服务质量指标 二、解决实时通信的主要矛盾 1. 增加带宽 A. 提供更优质的接入服务 B. 保证云端网络的带宽和质量 C. 更合理的路由调度策略 2. 减少数据量 A. 采用更好的压缩算…

Metasploitable2靶机漏洞复现

一、信息收集 nmap扫描靶机信息 二、弱口令 1.系统弱口令 在Kali Linux中使用telnet远程连接靶机 输入账号密码msfadmin即可登录 2.MySQL弱口令 使用mysql -h 靶机IP地址即可连接 3.PostgreSQL弱密码登录 输入psql -h 192.168.110.134 -U postgres 密码为postgres 输入\…