学习Java的第八天

news2024/11/15 11:05:51

本节我们重点研究对象和类的概念。

  • 对象(Object)是一个应用系统中的用来描述客观事物的实体,是有特定属性和行为(方法)的基本运行单位。是类的一个特殊状态下的实例。对象可以是一个实体、一个名词、一个可以想象为有自己标识的任何东西,可以概括来说:万物皆对象。
  • 类(Class)是Java代码的基本组织模块,使用来描述一组具有共同属性和行为对象的基本原型。是对这组对象的概括、归纳和描述表达。类是对象的模板,它定义了本类对象的所拥有的属性集和行为集,是对一组具有相同属性和相同方法的对象的定义
  • 类和对象之间是抽象与具体的关系。类是一个模板是对一类事物的抽象描述,而对象用于表示现实中该事物的个体。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类必须通过对象才可以使用,而对象中的属性和行为必须在类中定义。

一、Java中的对象

现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。

拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。

对比现实对象和软件对象,它们之间十分相似。

软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。

在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

二、类与对象的关系

类其实就是一个模板,比如说类就好比一张房子的设计图纸,或者说是一个倒印模具,创建一个类就好比设计一张图纸,刻一个模板。对象就好比一座建好的房子,一个成型的模型,无疑想要一座房子或者一个模型都先需要一张图纸和一个模板,而这就是类和对象的关系。

1、类的介绍

首先Java里面的类由关键字class定义,类中的元素称为:成员属性。类中的函数称为:成员方法。

class Person {
    public int age;//成员属性 实例变量
    public String name;
    public String sex;
    public void eat() {//成员方法
       System.out.println("吃饭!");  
   }
    public void sleep() {
       System.out.println("睡觉!");  
   }
}

 如下就是定义一个类

class Person {
    public String name;
    public String sex;
    public int age;
    //....人的属性
}

然后拿这个类创建一个对象,然后我们可以通过点号 . 来访问这个对象的成员,看如下

Person person = new Person();//实例化一个对象

 示例:

public class Puppy{
   int puppyAge;
   public Puppy(String name){
      // 这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
       puppyAge = age;
   }
 
   public int getAge( ){
       System.out.println("小狗的年龄为 : " + puppyAge ); 
       return puppyAge;
   }
 
   public static void main(String[] args){
      /* 创建对象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通过方法来设定age */
      myPuppy.setAge( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("变量值 : " + myPuppy.puppyAge ); 
   }
}

2、多个对象

可以创建一个类的多个对象,如以下示例:

public class MyClass {
  int x = 5;

  public static void main(String[] args) {
    MyClass myObj1 = new MyClass();  // 对象 1
    MyClass myObj2 = new MyClass();  // 对象 2
    System.out.println(myObj1.x);
    System.out.println(myObj2.x);
  }
}

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

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

相关文章

【C++】AVL树的插入、旋转

目录 一、AVL树介绍1.1 概念1.2 定义 二、AVL树的实现2.1 插入2.2 旋转2.2.1 左单旋2.2.2 右单旋2.2.3 左右双旋2.2.4 右左双旋 一、AVL树介绍 1.1 概念 AVL树是高度平衡的二叉搜索树,相比普通的二叉搜索树,它防止了变成单支树的情况。因为AVL树每插入…

YOLO系列研究

研究YOLO系列 目录 COCO数据集YOLO-v3下载coco数据集 COCO数据集 coco数据集是一个大型的物体检测、分割和字幕数据集 COCO数据集是一个大型的、丰富的物体检测,分割和字幕数据集。这个数据集以scene understanding为目标,主要从复杂的日常场景中截取&a…

Vue:Steam同款登录验证数字输入框

一、效果展示 二、思路 使用多个Input&#xff0c;在输入和回撤时改变焦点 三、代码 <template><div class"page"><div class"mainBox"><div class"numberBox"><div class"inputBox" v-for"(item,…

Python实现企业微信自动打卡程序二:跳过节假日,随机打卡时间,定时任务,失败通知

实现打卡时间随机范围 既然我们程序写完后需要定时执行&#xff0c;那定时执行打卡就会导致每次上班或下班打卡时都是同一时间&#xff0c;这并不好&#xff0c;为了避免被发现&#xff0c;每次打卡时间都是同一时间&#xff0c;这里我们优化程序&#xff0c;增加随机等待时间来…

【C语言】strcpy函数的超细节详解(什么是strcpy,如何模拟实现strcpy?)

目录 一、观察strcpy()库函数的功能与实现 二、模仿实现strcpy()函数 &#x1f50d;优化代码 &#x1f50d;assert断言拦截 &#x1f50d;const修饰常量指针 &#x1f50d;返回值的加入 三、共勉 一、观察strcpy()库函数的功能与实现 首先我们先来观察一下库函数strcpy去实现…

基于SpringBoot的“农机电招平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“农机电招平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 农机机主注册界面图 农机界面图 …

【深度学习笔记】7_4 动量法momentum

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.4 动量法 在7.2节&#xff08;梯度下降和随机梯度下降&#xff09;中我们提到&#xff0c;目标函数有关自变量的梯度代表了目标函数…

Vue+OpenLayers7入门到实战:OpenLayers的Popup弹出框如何内嵌Vue组件内容和内嵌iframe网页,根据所点击要素动态切换弹框内容

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上实现OpenLayers的弹出框与VUE组件联动的能力。在Popup弹出框内容中嵌入vue的组件,以及iframe第三方网页和html元素等内容。 本章支持根据所点击要素动态切换弹框内容。…

今日AI:Midjourney角色一致性功能上线、Grok即将开源、OpenAI永远提供免费版ChatGPT

欢迎来到【今日AI】栏目!这里是你每天探索人工智能世界的指南&#xff0c;每天我们为你呈现AI领域的热点内容&#xff0c;聚焦开发者&#xff0c;助你洞悉技术趋势、了解创新AI产品应用。 新鲜AI产品点击了解:AIbase - 智能匹配最适合您的AI产品和网站 &#x1f4e2;一分钟速…

【代码随想录】【二叉树】day18:二叉树的左下角的值,路径总和、构造二叉树

1二叉树左下角的值 左下角的值&#xff1a;最后一层最左侧的节点的值 递归 from collections import deque class TreeNode:def __init__(self,val,leftNone,rightNone):self.val valself.left leftself.right rightclass solution:def leftBottomNode(self,root):self.m…

【深度学习笔记】6_7 门控循环单元(GRU)

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 6.7 门控循环单元&#xff08;GRU&#xff09; 上一节介绍了循环神经网络中的梯度计算方法。我们发现&#xff0c;当时间步数较大或者…

[蓝桥杯 2020 省 B2] 平面切分

题目链接 [蓝桥杯 2020 省 B2] 平面切分 题目描述 平面上有 N N N 条直线, 其中第 i i i 条直线是 y A i ⋅ x B i y A_i \cdot x B_i yAi​⋅xBi​ 请计算这些直线将平面分成了几个部分。 输入格式 第一行包含一个整数 N N N。 以下 N N N 行, 每行包含两个整数…

总蛋白检测(Total Protein Assay)试剂盒--测定生物样品中胶原蛋白的含量

QuickZyme总胶原蛋白和羟脯氨酸检测试剂盒常用于测定生物样品&#xff08;如组织、组织提取物、细胞提取物和培养基&#xff09;中胶原蛋白的含量。为了正确解释所获得的数据&#xff0c;这些数据应该与一些参考量进行比较&#xff0c;如组织的湿重或干重、蛋白质含量与DNA等。…

2024蓝桥杯每日一题(二分)

一、第一题&#xff1a;教室 解题思路&#xff1a;二分差分 对天数进行二分&#xff0c;在ck函数中用差分方法优化多次区间累加。 【Python程序代码】 n,m map(int,input().split()) a [0] list(map(int,input().split())) d,s,t [0]*(m5),[0]*(m5),[0]*(m5) for…

VR全景在智慧园区中的应用

VR全景如今以及广泛的应用于生产制造业、零售、展厅、房产等领域&#xff0c;如今720云VR全景更是在智慧园区的建设中&#xff0c;以其独特的优势&#xff0c;发挥着越来越重要的作用。VR全景作为打造智慧园区的重要角色和呈现方式已经受到了越来越多智慧园区企业的选择和应用。…

adb常用指令集合

目录 1、查看应用Activity的任务栈2、局域网内无线连接设备3、启动adb服务4、结束adb服务5、查看连接的设备6、安装apk应用7、卸载指定应用8、从电脑拷贝文件到移动设备9、从移动设备拷贝文件到电脑10、重启设备11、查看版本12、调出shell&#xff0c;进入手机设置 1、查看应用…

最新:Selenium操作已经打开的Chrome(免登录)

最近重新尝试了一下&#xff0c;之前写的博客内容。重新捋了一下思路。 目的就是&#xff0c;selenium在需要登录的网站面前&#xff0c;可能就显得有些乏力&#xff0c;因此是不是有一种东西&#xff0c;可以操作它打开我们之前打开过的网站&#xff0c;这样就不用登录了。 …

python基础及网络爬虫

网络爬虫(Web crawler)&#xff0c;有时候也叫网络蜘蛛(Web spider)&#xff0c;是指这样一类程序——它们可以自动连接到互联网站点&#xff0c;并读取网页中的内容或者存放在网络上的各种信息&#xff0c;并按照某种策略对目标信息进行采集&#xff08;如对某个网站的全部页面…

基于JavaWeb开发的springboot网咖管理系统[附源码]

基于JavaWeb开发的springboot网咖管理系统[附源码] &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 &a…

修改AVD默认存放位置

一、背景 Android Studio安装完成后&#xff0c;通常会配置SDK和AVD&#xff0c;在配置SDK时&#xff0c;可以修改SDK位置&#xff0c;所以&#xff0c;安装完成后&#xff0c;SDK的位置已经进行了修改&#xff0c;但是AVD在创建时&#xff0c;没有修改路径&#xff0c;所以默…