JAVA-学习-2

一、类

1、类的定义

        把相似的对象划分了一个类。

        类指的就是一种模板,定义了一种特定类型的所有对象的属性和行为

        在一个.java的问题件中,可以有多个class,但是智能有一个class是用public的class。被声明的public的class必须和文件名相同

[访问修饰符] class 类名{
    成员变量-属性
    成员方法-行为
    内部类
    代码块
}
public class Car {
     String color;
     String brand;
     int door_num;

    public void start(){
        //启动
        System.out.println(color+"颜色"+door_num+"门"+brand+"车正在启动......");

    }
    public void speed(){
        //加速
        System.out.println(color+"颜色"+door_num+"门"+brand+"车正在加速......");
    }
    public void stop(){
        //停止
        System.out.println(color+"颜色"+door_num+"门"+brand+"车正在停止......");
    }
}

2、成员变量

        java类的成员变量,都有默认值。

        整数:0

        浮点数:0.0

        布尔:false

        字符:'\u0000'

        引用:null

        java类的成员变量,在下面所有的方法中,都可以访问到。

3、局部变量

        但是局部变量是没有默认值的。

原因:

        JVM通过CLassLoader类加载器及进行类加载,过程设计到 加载,准备、解析和初始化,类的成员变量初始化,是在JVM类加载的阶段完成。

区别:

         成员变量:静态(static)成员变量、非静态成员变量(初始化阶段赋值,根据代码中的赋值情况,如果没有赋值,则使用默认值,有赋值,则使用代码中的赋值;当当对象实例化后,成员变量会随着对象分配到Java堆内存中)。

        局部变量:存储在栈内存中

4、对象

4.1对象的定义

        类是模板,通过模板创建出具体的实例,就是模板。

        对象就是实际存在的某类事务的个体,也叫实例。

        类和对象的关系,就是抽象和具体的关系。

创建对象的属性和方法:

类名 对象名=new 类名

4.2对象的使用 

public class test1 {
    public static void main(String[] args) {
        Car car1 = new Car();
        car1.color="red";
        car1.brand="baoma";
        car1.door_num=4;
        car1.start();
        car1.speed();
        car1.stop();
    }

}

4.3对象创建的原理

①JVM运行时包括:程序计数器、Java栈、堆、本地方法栈、方法区

②当我门创建 一个对象时候,同时操作了栈和堆内存

③在栈内存保存了这个对象的引用

④对象的属性保存在对内存中。

⑤操作对象都是通过引用来完成,一旦引用出栈,没有被引用的对象就变成了垃圾,被回收。

在编写类文件的时候,类是存储在硬盘上的,没有被加载到内存中。

在主方法中创建了这个类的对象后,它才会被加载到内存中进行处理。

案例:

public class Clock {
    int hour;
    int mintue;
    int second;
    String timeZone;

    public void showTime(){
        System.out.println("现在是"+timeZone+"时间"+hour+"时"+mintue+"分"+second+"秒");
    }

}
public class TestColck {
    public static void main(String[] args) {
        Clock clock1 = new Clock();
        clock1.hour=11;
        clock1.second=12;
        clock1.mintue=22;
        clock1.timeZone="beijing";

        clock1.showTime();

        Clock clock2 = new Clock();
        clock2.hour=12;
        clock2.second=12;
        clock2.mintue=22;
        clock2.timeZone="dongjing";
        clock2.showTime();
    }

}

4.4匿名对象

new Car().speed();

就调用一次。

5、封装(属性的私有访问)

Java的封装就是信息隐藏技术。从属性的角度来说,有选择的提供数据。

封装也涉及到了软件的耦合性:高内聚,低耦合。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【CTF-Web】文件上传漏洞学习笔记(ctfshow题目)

文件上传 文章目录 文件上传What is Upload-File?Upload-File In CTFWeb151考点:前端校验解题: Web152考点:后端校验要严密解题: Web153考点:后端校验 配置文件介绍解题: Web154考点&#xff1a…

ChatTTS webUI API:ChatTTS本地网页界面的高效文本转语音、同时支持API调用!

原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!) ChatTTS webUI & API:ChatTTS本地网页界面的高效文本转语音、同时支持API调用! 🌟一个简单的本地网…

【Python学习1】matplotlib和pandas库绘制人口数变化曲线

✍🏻记录学习过程中的输出,坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞👍🏻收藏⭐评论✍🏻指点🙏 一、Python库说明 Matplotlib Matplotlib是一个功能强大的Python 2D绘图库,它允…

汇编:x86汇编环境搭建与基础框架(32位)

32位汇编代码编写环境:Visual Studio(笔者用的版本为2017);先来说一下在Visual Studio 2017中编写汇编代码的准备操作: ①创建空项目 ②设置项目属性:平台工具集设置为Visual Studio 2015(v140)&#xff0…

怎么用PHP语言实现远程控制两路照明开关

怎么用PHP语言实现远程控制两路开关呢? 本文描述了使用PHP语言调用HTTP接口,实现控制两路开关,两路开关可控制两路照明、排风扇等电器。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂商1智能WiFi墙…

搜索与图论:深度优先搜索

搜索与图论&#xff1a;深度优先搜索 题目描述参考代码 题目描述 参考代码 #include <iostream>using namespace std;const int N 10;int n; int path[N]; bool st[N];void dfs(int u) {// u n 搜索到最后一层if (u n){for (int i 0; i < n; i) printf("%d …

中国游戏产业月度报告分享 | 洞察游戏行业市场

作为中国音像与数字出版协会主管的中国游戏产业研究院的战略合作伙伴&#xff0c;伽马数据发布了《2024年4月中国游戏产业月度报告》。 数据显示&#xff0c; 2024年4月&#xff0c;中国游戏市场实际销售收入224.32亿元&#xff0c;环比下降4.21%&#xff0c;同比下降0.27%。移…

Qt无边框

最简单的可拖动对话框(大小不可改变) #ifndef DIALOG_H #define DIALOG_H/*** file dialog.h* author lpl* brief 无边框dialog类* date 2024/06/05*/ #include <QDialog> #include <QMouseEvent> namespace Ui { class Dialog; } /*** brief The Dialog class* 无…

如何把试卷上的字去掉再打印?分享三种方法

如何把试卷上的字去掉再打印&#xff1f;随着科技的不断发展&#xff0c;现代教育和学习方式也在逐渐变革。在学习过程中&#xff0c;我们经常需要对试卷进行整理和分析&#xff0c;以便更好地掌握知识点和复习。然而&#xff0c;传统的试卷整理方法往往效率低下且容易出错。幸…

六月的魔力:揭秘2024年加密市场与Reflection的创新与收益

回想过去加密货币市场的沉浮&#xff0c;一年中市场的阶段性牛市大多发生在下半年&#xff0c;六月似乎是一个神奇的时间节点。每年六月一到&#xff0c;加密货币市场仿佛突然被按下启动按钮&#xff0c;沉寂的土狗开始扶苏&#xff0c;经过半年准备的各大项目方开始蠢蠢欲动。…

27-unittest之断言(assert)

在测试方法中需要判断结果是pass还是fail&#xff0c;自动化测试脚本里面一般把这种生成测试结果的方法称为断言&#xff08;assert&#xff09;。 使用unittest测试框架时&#xff0c;有很多的断言方法&#xff0c;下面介绍几种常用的断言方法&#xff1a;assertEqual、assert…

MySql每天从0开始生成特定规则自增编号

一、前言 1、按一定规则生单号&#xff0c;要求不重复 2、例如&#xff1a;前缀 日期 不重复流水号&#xff0c;whgz-20240528-00001 二、数据库操作 1、MySQL新建一张表sys_sequence seq_name 序列名称 current_val 当前编号 increment_val 步长 CREATE TABLE sys_sequ…

kafka-消费者-消费异常处理(SpringBoot整合Kafka)

文章目录 1、消费异常处理1.1、application.yml配置1.2、注册异常处理器1.3、消费者使用异常处理器1.4、创建生产者发送消息1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、消费者控制台&#xff1a;1.8.1、第一次启动SpringK…

【案例分享】明道数云为阿联酋迪拜公司Eastman BLDG打造外贸管理系统

内容概要 本文介绍了Eastman公司与明道数云软件的合作&#xff0c;通过数字化解决方案提升了Eastman在贸易管理中的效率。Eastman公司位于阿联酋迪拜&#xff0c;周边城市有门店&#xff0c;人数大概在30&#xff0c;是一家主营瓷砖和石材类产品的贸易公司&#xff0c;面临着各…

C#,JavaScript实现浮点数格式化自动保留合适的小数位数

目标 由于浮点数有漂移问题&#xff0c;转成字符串时 3.6 有可能得到 3.6000000000001&#xff0c;总之很长的一串&#xff0c;通常需要截取&#xff0c;但按照固定长度截取不一定能使用各种情况&#xff0c;如果能根据数值大小保留有效位数就好了。 C#实现 我们可以在基础库里…

linux实验报告

实验一&#xff1a;Linux操作系统的安装与配置 实验目的&#xff1a; 1.掌握虚拟机技术&#xff1b; 2.掌握Linux的安装步骤&#xff1b; 3.掌握安装过程中的基本配置要求。 4.掌握正确启动Linux的方法&#xff1b; 5.掌握正确退出Linux的方法&#xff1b; 6.熟悉已安装…

【Python】把xmind转换为指定格式txt文本

人工智能训练通常需要使用文本格式&#xff0c;xmind作为一种常规格式不好进行解析&#xff0c;那如何把xmind转换为txt格式呢&#xff1f; 软件信息 python python -v Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32…

C#知识|通过ADO.NET实现应用程序对数据库的查询操作。

哈喽,你好啊,我是雷工! 前边学习了通过ADO.NET实现C#应用程序对数据库的增、删、改操作。 接下来接着学习查询操作,以下为学习笔记。 查询返回有两种类型,一种是单行单列的单一结果,一种是结果集,首先了解查询结果是单行单列结果的写法。 01 查询返回单一结果 以前方的…

Python编程学习第一篇——Python零基础快速入门(五)—元组(Tuple)操作

Python元组是一种不可变的有序集合&#xff0c;可以存储多个不同类型的数据。元组使用小括号来表示&#xff0c;其中的元素用逗号分隔开。与列表不同&#xff0c;元组的元素不能被修改、删除或添加。它的一些常规操作包括元组的创建、访问、添加、修改、删除、运算等等&#xf…

编译原理-程序设计语言的设计

变量 存储单元及它的名称由变量的概念来代替; 可以代表一个或一组单元,可以修改。 绑定 绑定:一个实体(或对象)与其某种属性建立起某种联系的 过程,称为绑定。 静态绑定:凡是在编译时能确定的属性,称为静态属性; 若绑定在编译时完成,运行时不改变,称为静态…