首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Java类和对象 小白版

编程知识
2024年08月11日 23:38

一、类

一、类的定义

具有同种属性的对象称为类。定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化。

类的三种常见成员:属性、方法、构造器

二、类的编写

1.类名的定义;

2.类属性(特性)的编写;属性 ( 成员变量 ) = 访问修饰符 + 数据类型 +变量名

//定义人类
public class Person{
    public String name; //名字(属性)
    public int age;     //年龄(属性)
    public String sex;  //性别(属性)
}

3.类方法(行为)的编写。 方法 = 访问修饰符 + 返回值类型 +方法名 + 方法参数 + 方法体

public class Person{
    public void study(){ //方法
        System.out.println("Good good study, day day up!")
    }
}

三、类的声明

类在使用前必须先声明然后才可以声明变量,创建对象

类声明语法如下:

[标识符] [修饰符] class 类名 {
    //类的属性(特性)-名词(只定义和业务逻辑相关的代码)
    //类的方法(行为)-动词(只定义和业务逻辑相关的代码)
}

四、实例

public class Person {
    String name;
    int age;
    String sex;

    //定义一个学习方法
    public void study(){
        System.out.println("Good good study, day day up!");
    }

    //显式编写一个空构造器
    public Person() {
        System.out.println("Person 空构造器");
    }

    //编写一个带参数的构造器
    public Person(String name, int age, String sex) {
        this.name = name; //this.name代表Person中的属性name,= 后面的name代表构造器中的参数name
        this.age = age;
        this.sex = sex;
    }
    //方法重载
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {
        Person p1 = new Person("二两客", 22, "Male");
        System.out.println(p1.name + " " + p1.age + " " + p1.sex);
        p1.study();
        Person p2 = new Person("椰椰", 22);
        System.out.println(p2.name + " " + p2.age);
        p2.study();
    }
}

二、对象

一、对象的定义

现实世界存在的任何事务都可以称之为对象。

二、对象的创建和使用

常见实例化对象的方式有四种:使用类创建对象(new)、cloae方法、反序列化、反射。

1.创建对象的格式:

类名 对象名 = new 类名([参数列表]);

Person person = new Person;

注:通过使用new运算符,一个类可以创建多个对象,每个对象被分配的不同的内存空间,改变一个对象的变量不会影响其它对象的变量。

   每个类都有一个不带参数的默认构造方法,当通过new运算符调用默认构造方法创建对象时,系统会自动初始化所分配的内存空间。对于数值变量,赋初值0,对于布尔变量,赋初值false,对于引用变量,赋予一个特殊的值null。

2.给对象的属性赋值:

对象名.属性名

person.name = "二两客";
person.age = 22;
person.sex = "男";

3.调用对象的方法:

[ 返回值类型 名字 = ] 对象名.方法名(参数列表)

注: [ ]内容可省略。

person.study();

三、实例

public class Person {
    String name;
    int age;
    String sex;

    //定义一个学习方法
    public void study(){
        System.out.println("Good good study, day day up!");
    }
}
public class Test {
    public static void main(String[] args) {
        // 创建对象
        Person person = new Person();
        // 设置属性
        person.name = "二两客";
        person.age = 22;
        person.sex = "男";
        //对属性进行提取
        System.out.println(person.name);
        System.out.println(person.age);
        System.out.println(person.sex);
        // 调用方法
        person.study();
    }
}

四、匿名对象

1.定义

匿名对象就是实例化没有名字的对象,指的是在创建一个对象时,只有创建的语句,却没有将其地址赋值给某个变量,

创建一个匿名对象:

//没有赋值给某个变量
new Person();

2.适应场景

1.只调用一次对象的方法时
new Person().study();
2.作为方法的实际参数或返回值时

3.特点

  • 匿名对象作为对象,也具有普通对象所有功能;

  • 每一次使用匿名对象,都是new出的新对象;

  • 匿名对象执行完毕后,由于没有其他引用,会被Java的垃圾回收机制判断为垃圾,进行自动回收。

五、对象的销毁

  1. 对象的销毁是指当对象使用完毕后,释放对象所占用的内存空间。

  2. Java对象的销毁是采用垃圾回收机制(Garbage Collection ------GC),自动回收不再访问的对象。

    • GC可以回收new 的对象,系统资源不能回收;
    • GC回收对象不是马上回收,而是在空闲时回收;
    • 调用System.GC(),不是立即回收程序员决定不了
  3. java 程序员不需要关注Java对象的销毁,只需要关注Java对象的创建(或实例化)——GC的作用

  4. Java对象被销毁后将不允许再访问该对象,这将导致运行时错误(或程序崩溃)。

From:https://www.cnblogs.com/wmshun/p/18354182
本文地址: http://shuzixingkong.net/article/998
0评论
提交 加载更多评论
其他文章 关于REACT范式的一些思考
关于REACT范式的一些思考 REACT范式经过近一年的探索,让我们在很多领域有了非常广泛的应用,它确实提升了很多之前无法解决的问题,比如大模型虽然在语言理解和交互式决策方面在任务中表现出令人印象深刻的表现,但是如何让模型基于解释来使用 LLMs 以交错方式生成推理跟踪和特定于任务的操作 一直是一个
关于REACT范式的一些思考 关于REACT范式的一些思考 关于REACT范式的一些思考
编程技巧 --- 远程调试
引言 最近在做的项目上做了一些性能优化的工作,用到了 Visual Studio 远程调试,所以本篇文章整理一下远程调试技巧。 首先,了解一下 Visual Studio远程调试是什么? Visual Studio 的远程调试功能允许在本地调试远程计算机上运行的应用程序。用远程调试,可以在本地计算机
编程技巧 --- 远程调试 编程技巧 --- 远程调试 编程技巧 --- 远程调试
在python项目的docker镜像里使用pdm管理依赖
前言 在 DjangoStarter 项目中,我已经使用 pdm 作为默认的包管理器,不再直接使用 pip 所以部署的时候 dockerfile 和 docker-compose 配置也得修改一下。 dockerfile 首先修改一下 dockerfile ARG PYTHON_BASE=3.11
Android网页投屏控制从入门到放弃
本文主要记录通过网页控制安卓设备相关的实践过程,通过从adb方案开始,到uiautomator2,以及最后放弃scrpy方案,在这个热闹的周末,正好闲暇的时间,了解过去不曾接触的知识,也是一个有趣的过程。
Android网页投屏控制从入门到放弃
下一代浏览器和移动自动化测试框架:WebdriverIO
1、介绍 今天给大家推荐一款基于Node.js编写且号称下一代浏览器和移动自动化测试框架:WebdriverIO 简单来讲:WebdriverIO 是一个开源的自动化测试框架,它允许测试人员使用 Node.js 编写自动化测试脚本,用于测试Web应用、移动应用和桌面应用程序。能够执行端到端(e2e)
下一代浏览器和移动自动化测试框架:WebdriverIO
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
教程简介 EasySQLite是一个七天.NET 8操作SQLite入门到实战详细教程(包含选型、开发、发布、部署)! 什么是SQLite? SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。S
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署) 七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署) 七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫
一、前言 大家好呀,我是summo,前面已经教会大家怎么去阿里云买服务器(链接在这,需要自取),以及怎么搭建JDK、Redis、MySQL这些环境或者数据库。从这篇文章开始就进入正式的编码阶段了,我们从后端开始,先把热搜数据获取到,然后再开始前端部分。 本来我想把后端应用搭建和完成第一个爬虫分为两篇
《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫 《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫 《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫
Blazor开发框架Known-V2.0.7
V2.0.7 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行。 官网:http://known.pumantech.com Gitee: https://gitee.com/known/Known Github:https://github.com/k
Blazor开发框架Known-V2.0.7 Blazor开发框架Known-V2.0.7 Blazor开发框架Known-V2.0.7