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

目录

  • 创建类
    • 类的属性
    • 类的方法
    • 实例
    • 分析
  • 创建对象
    • 创建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.hqwc.cn/news/455366.html

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

相关文章

释放资源的方式

try - catch - finally finally代码区的特点:无论try中的程序是正常执行力,还是出现了异常,最后都一定会执行finally区,除非JVM终止。 作用:一般用于在程序执行完成后进行资源的释放操作(专业级做法&#x…

用 Delphi 程序调用 Python 代码画曲线图

用 Python 的库画图 Python 代码如下: import matplotlib.pyplot as pltsquares [1, 4, 9, 16, 25]; plt.plot(squares); plt.grid(True) # 网格线 plt.show(); # 这句话会弹出个窗口出来,里面是上述数据的曲线。 把以上代码,放进 PyS…

对于模糊查询的SQL,怎么优先返回等值记录

说明:记录一次SQL改进的方法,希望能对大家有启发。 场景 前端项目有一个输入框,根据输入的银行名称,去模糊查询对应的数据库表,返回结果集,显示到下拉列表中。 因为银行名称字段包括了分行名&#xff0c…

如何进行游戏服务器的负载均衡和扩展性设计?

​在进行游戏服务器的负载均衡和扩展性设计时,需要考虑多个方面,以确保服务器的稳定性和可扩展性。以下是一些关键的步骤和考虑因素: 负载均衡的需求分析 在进行负载均衡设计之前,需要深入了解游戏服务器的负载特性和需求。这包括…

DevOps落地笔记-15|混沌工程:通过问题注入提高系统可靠性

上一课时介绍了通过搭建一套部署流水线,高效、可靠的将软件部署到测试环境以及生产环境。到目前为止,我们学习了从用户需求到软件部署到生产环境交付给用户的全过程。随着软件工程不断发展,近几年,出现了一种新的实践,…

idea(2023.3.3 ) spring boot热部署,修改热部署延迟时间

1、添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency>载入依赖 2、设置编辑器 设置两个选项 设置热部署更新延迟时…

无向图-树的重心-DFS求解

思路&#xff1a; 本题的本质是树的dfs&#xff0c; 每次dfs可以确定以u为重心的最大连通块的节点数&#xff0c;并且更新一下ans。 也就是说&#xff0c;dfs并不直接返回答案&#xff0c;而是在每次更新中迭代一次答案。 这样的套路会经常用到&#xff0c;在 树的dfs 题目中…

python的内置函数-print()、input()、range()

内置函数 一、print()二、input()三、range()range的定义与特点range()函数的使用使用range()创建数字列表 一、print() print()是一个内置函数&#xff0c;用于将指定的内容打印到控制台。 #基本用法&#xff1a; print(value1, ..., sep , end\n, filesys.stdout, flushFal…

双向链表的插入、删除、按位置增删改查、栈和队列区别、什么是内存泄漏

2024年2月4日 1.请编程实现双向链表的头插&#xff0c;头删、尾插、尾删 头文件&#xff1a; #ifndef __HEAD_H__ #define __HEAD_H__ #include<stdio.h> #include<stdlib.h> #include<string.h> typedef int datatype; enum{FALSE-1,SUCCSE}; typedef str…

npm淘宝镜像源换新地址

新的淘宝npm镜像源地址&#xff1a;https://registry.npmmirror.com 切换新的镜像源 npm config set registry https://registry.npmmirror.com然后再执行以下操作查看是否成功 npm config list如果没安装过淘宝镜像源的&#xff0c;则直接安装 npm install -g cnpm --regi…

Springboot 整合 Elasticsearch(二):使用HTTP请求来操作ES

&#x1f4c1;前情提要&#xff1a;Springboot整合Elasticsearch&#xff08;一&#xff09;&#xff1a;Linux下安装 Elasticsearch 8.x 上回说到&#xff0c;Elasticsearch 已经安装完成&#xff0c;不过我们使用7.17.5 版本继续后文&#xff1a; 一、使用 elasticsearch-hea…

【Java EE】----Spring框架创建和使用

1.Spring框架创建 创建一个maven项目 添加Spring框架支持 <dependencies> 上下文<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></depende…