Java面向对象 创建类 创建对象

news2024/11/17 21:55:49

目录

  • 创建类
    • 类的属性
    • 类的方法
    • 实例
    • 分析
  • 创建对象
    • 创建Test类测试
    • 分析

创建类

类的属性

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

  • 属性定义格式:
[修饰符]  属性类型  属性名 = [默认值] ;

类的方法

方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

  • 方法定义格式:
[修饰符]  方法返回值类型  方法名(形参列表) {
        // n条语句
}

实例

public class Person {
    int age ;//年龄
    String name;//姓名
    double height;//身高
    double weight;//体重
    //动词--->方法
    //吃饭
    public void eat(){
        int num = 10;//局部变量:放在方法中
        System.out.println("我喜欢吃饭");
    }
    //睡觉:
    public void sleep(String address){
        System.out.println("我在"+address+"睡觉");
    }
    //自我介绍:
    public String introduce(){
        return "我的名字是:"+name+",我的年龄是:"+age+",我的身高是:"+height+",我的体重是:"+weight;
    }
}

分析

这是一个简单的Java类,名为Person,代表一个人。这个类包含了四个成员变量(属性):age(年龄)、name(姓名)、height(身高)和weight(体重)。类中还定义了三个方法:eat()sleep()introduce(),分别代表“吃饭”、“睡觉”和“自我介绍”的行为。

以下是关于这个类的简要分析:

  1. 属性:

    • age: 用于存储人的年龄。
    • name: 用于存储人的姓名。
    • height: 用于存储人的身高。
    • weight: 用于存储人的体重。
  2. 方法:

    • eat(): 一个没有参数的方法,输出“我喜欢吃饭”。
    • sleep(String address): 一个带有一个字符串参数的方法,输出“我在”加上传入的地址“睡觉”。
    • introduce(): 返回一个字符串,描述人的姓名、年龄、身高和体重。
  3. 变量:

    • int num = 10;: 这是一个局部变量,只在eat()方法内部有效。
  4. 输出:

    • 当调用eat()sleep()introduce()方法时,程序会输出相应的信息。例如,调用eat()会输出“我喜欢吃饭”,调用sleep(address)会输出“我在”加上传入的地址“睡觉”,调用introduce()会输出人的详细信息。

创建对象

创建Test类测试

public class Test01 {//测试类
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        //创建一个人类的具体的对象/实例:
        //创建一个对象,对象的名字叫:zs
        //Person 属于 引用数据类型
        //第一次加载类的时候,会进行类的加载,初始化创建对象的时候,对象的属性没有给赋值,有默认的初始化的值。
        Person zs = new Person();
        zs.name = "张三";
        zs.age = 19;
        zs.height = 166.5;
        zs.weight = 70.4;
        //再创建一个对象:
        //再次创建类的时候,就不会进行类的加载了,类的加载只在第一次需要的时候加载一次
        Person ls = new Person();
        ls.name = "李四";
        ls.age = 18;
        ls.height = 180.6;
        ls.weight = 130.5;
        //对属性值进行读取:
        System.out.println(zs.name);
        System.out.println(ls.age);
        //对方法进行操作:
        //不同的对象,属性有自己的特有的值,但是方法都是调用类中通用的方法。
        //属性:各个对象的属性是独立的,
        //方法:各个对象的方法是共享的。
        zs.eat();
        ls.eat();
        zs.sleep("教室");
        /*String str = zs.introduce();
        System.out.println(str);*/
        System.out.println(zs.introduce());
    }
}


在这里插入图片描述

分析

这段代码是一个简单的Java程序,用于演示对象的创建、属性的设置、方法的调用等基本概念。以下是代码的简要分析:

  1. 类的定义:

    • Test01 是测试类,包含一个 main 方法,这是程序的入口点。
  2. 对象的创建:

    • 通过 Person zs = new Person();Person ls = new Person(); 创建了两个 Person 类的对象,分别命名为 zsls
  3. 属性的设置:

    • 使用点运算符为对象的属性赋值,例如 zs.name = "张三";
  4. 方法的调用:

    • 调用对象的 eat() 方法,该方法在 Person 类中定义。
    • 调用对象的 sleep() 方法,并传递一个字符串参数 “教室”。
  5. 属性的读取:

    • 使用 System.out.println() 打印对象的属性值。
  6. 方法的共享:

    • 所有对象共享同一个 eat() 方法,因为它是类中的静态方法。
  7. 方法的独立性:

    • 每个对象都有自己独立的属性值,但共享相同的方法。例如,虽然 zslsnameage 属性值不同,但他们都调用了同一个 eat() 方法。
  8. 部分注释:

    • 代码中的注释有助于解释代码的工作原理,但被注释掉的代码(例如 String str = zs.introduce(); System.out.println(str);)不会执行。
  9. 输出:

    • 程序将打印出对象 zsls 的属性值,以及他们各自调用的方法(eat()sleep())的输出。
  10. 加载和初始化:

    • 当第一次创建类的新对象时,类会被加载并初始化。后续创建该类的其他对象时,类不再重新加载和初始化。这通过注释进行了说明。
  11. 注意点:
    在提供的代码中,我们没有看到完整的 Person 类定义,所以我们无法分析它的所有属性和方法。但根据提供的代码,我们只能假设 Person 类中定义了相应的属性和方法。

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

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

相关文章

【ARM 嵌入式 编译系列 2.7 -- GCC 编译优化参数详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 GCC 编译优化概述常用优化等级-O1 打开的优化选项-O2 打开的优化选项-O3 打开的优化选项-Os 打开的优化选项优化技术使用优化选项的注意事项GCC 编译优化概述 GCC(GNU Compiler Collection)包含了用于C、C++、Objective-C、Fort…

大模型综述

1.概念 大模型是指人工智能预训练大模型,具有海量参数和复杂架构,用于深度学习任务的模型,拥有强大的处理能力和表征能力,以数据算力为支撑,借助数据管理、模型训练、评估优化、服务平台、插件等辅助工具,…

Windows显示空的可移动磁盘的解决方案

123  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式…

macbookpro和macbookair的区别?cleanmymac 怎么清理mac空间

苹果mac air和pro区别有:1、air采用了轻薄的设计,重量相对较轻,便于携带,而pro更加注重性能,所以比较重;2、air通常搭载较低功耗的处理器内存和存储容量相对较小,而pro配备了更强大的处理器、更…

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了(源码错了,顺带升级了)

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了,(源码错了,顺带升级了) 一、el-admin前端通用核心组件二、如何使用?2.1 新建组件2.2 修改对象属性标记2.3 修改四类组件引用标记2.4 生效 …

HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)

预览效果 部分代码 开发语言 HarmonyOS 鸿蒙 ArkTS语言 (Stage模型) 备注 一键生成,自带证件照数集, 为开发者带来二次开发和学习体验, 在这祝福开发者们使用愉快。 使用方法 下载后通过DevEco Studio开发工…

HarmonyOS开发工具DevEco Studio安装以及汉化

HUAWEI DevEco Studio 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE), 助力高效开发。 应用内共享HSP开发 支持在Stage模型和模块化编译方式下开发HSP,以及共享HSP给应用内其他模块使用;支持运行态共享HSP。Code Linter代码检查 支持ArkTS/T…

多模态论文串讲·上【论文精读·46】

大家好,今天我们就来过一下多模态的串讲,其实之前我们也讲了很多工作了,比如说clip,还有 ViLT 以及 clip 的那么多后续工作。多模态学习在最近几年真的是异常的火爆,那除了普通的这种多模态学习,比如说视觉…

【大数据】Flink 中的 Slot、Task、Subtask、并行度

Flink 中的 Slot、Task、Subtask、并行度 1.并行度2.Task 与线程3.算子链与 slot 共享资源组4.Task slots 与系统资源5.总结 我们在使用 Flink 时,经常会听到 task,slot,线程 以及 并行度 这几个概念,对于初学者来说,这…

爬虫工作量由小到大的思维转变---<第四十四章 Scrapyd 用gerapy管理多台机器爬虫>

前言: 之前讲过关于如何在gerapy中部署本地爬虫, 爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>_gerapy如何登录-CSDN博客 爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapydGerapy 部署爬虫项目&…

锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!

适用平台:Matlab2023版及以上 特征选择方法:"最大相关最小冗余"(Maximal Relevance and Minimal Redundancy,简称MRMR)是一种用于特征选择的方法。该方法旨在找到最相关的特征集,同时最小化特征…

[UI5 常用控件] 06.Splitter,ResponsiveSplitter

文章目录 前言1. Splitter1.1 属性 2. ResponsiveSplitter 前言 本章节记录常用控件Splitter,ResponsiveSplitter。主要功能是分割画面布局。 其路径分别是: sap.ui.layout.Splittersap.ui.layout.ResponsiveSplitter 1. Splitter 1.1 属性 orientation &#x…

Meta开源大模型LLaMA2的部署使用

LLaMA2的部署使用 LLaMA2申请下载下载模型启动运行Llama2模型文本补全任务实现聊天任务LLaMA2编程Web UI操作 LLaMA2 申请下载 访问meta ai申请模型下载,注意有地区限制,建议选其他国家 申请后会收到邮件,内含一个下载URL地址,…

【python】绘制爱心图案

以下是一个简单的Python代码示例,它使用turtle模块绘制一个代表爱和情人节的心形图案。 首先,请确保计算机上安装了Python和turtle模块。然后,将以下代码保存到一个.py文件中,运行它就可以看到爱心图案的绘制过程。 import turt…

【ArcGIS微课1000例】0101:删除冗余节点或折点

文章目录 一、实验描述二、实验数据三、实验过程1. 手动删除2. 简化线工具四、注意事项一、实验描述 矢量数据获取通常来源于手动或者ArcScan自动采集,其基本存储方式就是记录每个要素的点坐标,如点要素就是一个坐标、线要素由多个点要素连接形成。当某段线要素被过多的节点…

【webpack】优化提升

webpack优化提升 安装webpack相关内容向下兼容游览器-babel/polyfill进一步优化babel/polyfill模块联邦-共享模块如何提升构建性能通用环境下1,webpack更新到最新版本2,将loader应用于最少数量的必要模块3,引导(每个额外的loader/…

pr如何导出mp4格式视频?手把手教你

PR是一款强大的视频编辑软件,广泛应用于电影、电视制作以及各类创意视频项目。在完成编辑后,将项目导出为MP4格式视频是常见的需求,因为MP4是一种通用且高度兼容的视频格式,适用于多个平台和设备。pr如何导出mp4格式视频&#xff…

分享69个节日PPT,总有一款适合您

分享69个节日PPT,总有一款适合您 69个节日PPT下载链接:https://pan.baidu.com/s/1Y3tf2bStj595B2GD3v0dBQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。…

记录一下esp32模组固件开发流程

现在的esp32开发环境非常简单,参考如下: dl.espressif.cn/dl/esp-idf/ 在上面的链接中选择合适的版本进行安装,安装后环境自带源文件、编译连接工程脚本、图形化配置脚本、编译器、烧录调试工具。 这里我选择安装在C盘,C:\Espr…

Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透

概述 Redis 的缓存异常问题,除了数据不一致问题外,还会面临其他三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题,一旦发生,会导致大量的请求积压到数据库。若并发量很大,就会导致数据库宕机或故…