【JAVA基础】类与对象

文章目录

  • Java类
  • Java对象
  • 为什么Java会设计对象
  • Java对象怎么用
    • 程序的执行流程


Java类

  • JAVA类:项目中新建的.java文件就是JAVA类,其中包含代码,通过javac命令编译为二进制.class文件,让计算机读取。类是对象的模板

    在这里插入图片描述

Java对象

  • JAVA对象

    创建对象的方法:

    /**  Student:数据类型-----> 规定数据在内容中的存储形式*  s:对项目/变量名*  new关键字:在对内存中开辟内存空间*  Student():构造器-----> 在创建对象的时候给对象赋值*  =:赋值操作:是将堆内存中的创建的内存空间的地址赋值给s变量* */Student s = new Student();     // 创建Student对象,对象名称叫做s
    

    在这里插入图片描述

    对象使用方法:

        // 类是构建对象的模板,一个类可以创建多个对象,每个对象的数据最初来源来自对象Student s1 = new Student();Student s2 = new Student();String name1 = s1.name;System.out.println(name1); // 输出为张三String name2 = s2.name;System.out.println(name2); // 输出为张三int age1 = s1.age;System.out.println(age1); // 输出为18int age2 = s2.age;System.out.println(age2); // 输出为18// 输出的age和name都相同且都来自Student类
    

    但是当修改信息之后:

    s1.name = "李四";
    String name1 = s1.name;
    System.out.println(name1); // 此时输出的name1为李四
    

    所以类与对象的具体关系如下图:可以通过对象s1或者s2改变对象中的数据,就像月饼通过模具制作出来之后我们也可以对月饼进行进一步细致的雕刻,更改花纹。类是模板(模具),对象是实体(月饼)

    在这里插入图片描述

为什么Java会设计对象

对于面向过程的语言,方法直接操作对象,修改内容时会直接修改变量的值,是永久性改变;而对于面向对象的语言,类是对象的模板,一个类可以创建多个对象,数据存储在对象中方法直接操作的是对象和对象中的数据,不会对类造成影响,对比如下:

在这里插入图片描述

举个例子:

public class Student {public int age = 18;public String name = "张三";public char sex = '男';private Double heght = 180.5; // 私有变量,其他类无法访问,只能通过类中的方法进行操作public Double getHeght() {return heght;}public void setHeght(Double heght) {this.heght = heght;}
}public class Test2 {public static void main(String[] args) {// 类是构建对象的模板,一个类可以创建多个对象,每个对象的数据最初来源来自对象Student s1 = new Student();Student s2 = new Student();s1.setHeght(170.0);System.out.println(s1.getHeght()); // 输出170.0System.out.println(s2.getHeght()); // 输出180.5}
}

在这里插入图片描述

Java对象怎么用

  • 为什么刚刚的getHeight()和setHeight()方法不会对类产生影响呢?

如下图:setHeight()方法改变的只是对象中的height值,并没有访问类,也没有对类中的属性值进行操作

在这里插入图片描述

注意:

  • this.height代表的是当前操作的对象中的值或者数据
  • 等号之后的height代表的是方法中的形参
  • 方法执行的时候要入栈,执行完毕之后要出栈
  • 栈中存储的是程序执行过程,程序执行第一步是main()方法入栈;堆中存储的是对象数据;方法区中存储的是类信息

程序的执行流程

程序的执行流程就是方法的不断入栈出栈!

例1

public class Student {public void run(){String name = "123";System.out.println("学生跑的很快");}public void fly(int num){System.out.println("学生会飞");}
}public class Test2 {public static void main(String[] args) {Student student = new Student();student.fly(1);student.run();}
}

在这里插入图片描述

例2

public class Student1 {public int flag;public void run(){if(flag == 1){System.out.println("此时flag=1");}else{System.out.println("此时flag!=1");}}
}public class Test1 {public static void main(String[] args) {Student1 student1 = new Student1();Student1 student2 = new Student1();student1.flag = 1;student2.flag = 2;student1.run();student2.run();}
}

在这里插入图片描述

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

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

相关文章

【C++题解】1146. 求S的值

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1146. 求S的值 类型:递归基础、函数 题目描述: 求 S12471116…的值刚好大于等于 5000 时 S 的值。 输入: 无。 输出: 一行&…

原生js中的防抖节流笔记

防抖,单位时间内,频繁触发,只执行最后一次 效果演示 优化前,不断触发,浪费性能 优化后,只在指定时间内触发 演示代码 import debounce from "/node_modules/lodash-es/debounce.js"; const oBox docu…

宿舍管理系统设计与分析

第一章 管理信息系统概述 在人类进入21世纪之际,随着社会的组织化程度以及企业生产的社会化程度越来越高,信息作为一种资源已经和材料、能源并称为现代社会化发展的三大支柱之一。管理信息系统是融科学、信息科学、系统工程以及现代通讯技术、计算机技术…

大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

ollama+llama3.1 405B 简介

ollamallama3.1 简介 Llama 3.1是一款来自Meta的最新型号,提供8B、70 B和405 B模型。 llama3.1:latestllama3.1:8bllama3.1:70bllama3.1:405bllama3.1:8b-instruct-fp16llama3.1:8b-instruct-q2_Kllama3.1:8b-instruct-q3_K_Sllama3.1:8b-instruct-q3_K_Mllama3.1…

WSL-ubuntu下载安装配置cudnn

下载 安装cuDnn的话需要和CUDA版本对应,可参考官网: cuDNN Archive | NVIDIA Developer 我的cuda是11.8 这个cuDNN8.9.7_Linux直接下载: https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudn…

简约好看音乐播放器网页网站MP4播放器源码

源码介绍 简约好看音乐播放器网页网站MP4播放器源码,music是存放音乐的文件夹,添加音乐也是非常简单,参考上图自己研究去吧,不多说了。 效果截图 源码下载 简约好看音乐播放器网页网站MP4播放器源码

JavaSE基础(12)——文件、递归、IO流

1、IO流 Input:输入,写数据,数据从磁盘加载到内存(程序)中。 Output:输出,读数据,数据从内存(程序)存储到磁盘中。 流:不管是读还是写&#xf…

Docker中镜像文件的打包传输、容器导出镜像及虚拟机端口映射的实现

内网私有仓库 1、Docker 私有仓库 是集中存放镜像的地⽅,⽽注册服务器 (Registry)是存放仓库的具体服务器。仓库可以被认为是⼀个具体 的项⽬或⽬录。 Docker 公共仓库:https://hub.docker.com 2、Docker 私有仓库的作⽤&#…

C语言试题(含答案解析)

单选 1.下面C程序的运行结果为&#xff08;&#xff09; int main(void) {printf("%d", B < A);return 0; }A.编译错误 B.1 C.0 D.运行错误 A’的ascii码值为65&#xff0c;‘B’的ascii码值为66&#xff0c;‘B’<‘A’是不成立的&#xff0c;返回0&#xf…

[嵌入式 C 语言] 知识库

一、数据类型 1.1 基本数据类型 自定义类型基础类型占用字节数取值范围描述mls8char1-128 to 1278 位有符号整数mlu8unsigned char10 to 2558 位无符号整数mlvu8volatile unsigned char10 to 2558 位无符号整数&#xff0c;具有 volatile 属性mls16short2-32768 to 3276716 位…

看图学sql之sql 中的UNION 和union all

UNION 用于合并两个或者多个 SELECT 语句的结果集 语法&#xff1a; SELECT column1, column2 ... FROM table1, table2 [WHERE condition1]UNION / UNION ALLSELECT column1, column2 ... FROM table1, table2 [WHERE condition2] 数据分析社区直达 免费数据分析资料下载。…

电机启动对单片机重启的影响

单片机使用ASM1117对9V电压降压供电&#xff0c;IO口接三极管控制电机 &#xff0c;接9V&#xff1b;每次启动瞬间&#xff0c;单片机重启 试进行分析 网上参考&#xff0c;添加滤波&#xff0c;电容&#xff0c;阻容&#xff1b;分开电源处理&#xff08;双电源&#xff09;&…

Qt坐标系统之三个坐标系和两个变换

前言 Qt坐标系统由QPainter类控制。它和QPaintDevice和QPaintEngine类一起构成Qt绘图系统的基础。QPainter用于执行绘图操作&#xff0c;QPaintDevice是QPainter用来绘制的一个二维空间的抽象&#xff0c;QPaintEngine提供在不同设备绘图的接口。 Qt 的坐标分为逻辑坐标和物理…

True XML cookbook

打开题目 看到登录口 随便输入admin&#xff0c;123456&#xff0c;然后抓包试一下 先按原来那道题的payload进行测试&#xff0c;payload和结果如下&#xff1a; <?xml version"1.0" ?> <!DOCTYPE llw [ <!ENTITY file SYSTEM "file:///flag&…

k8s教程

1. k8s框架 - kubernetes的架构- Control Plane: 控制K8S集群的组件。- Api Server: 集群的访问入口。- etcd: 存储集群的数据。一般情况下&#xff0c;只有API-SERVER会访问.- Control Manager: 维护集群的状态。- Scheduler: 负责Pod的调度功能。- Wor…

性能测试常见故障和解决思路

一、性能问题分析流程 1、查看服务器的CPU、内存 、负载等情况&#xff0c;包括应用服务器和数据库服务器 2、查看数据库健康状态&#xff0c;数据库死锁、连接池不释放 3、查看项目日志&#xff08;查看无报错现象&#xff09; 4、查看jvm的gc等情况 二、内存溢出 &…

SSL/TLS协议信息泄露漏洞修复

概述&#xff1a;CVE-2016-2183 是一个涉及 SSL/TLS 协议信息泄露的漏洞&#xff0c;也被称为 "SWEET32" 攻击。该漏洞利用了某些对称加密算法&#xff08;如 3DES&#xff09;的弱点&#xff0c;攻击者可以通过捕获和分析大量的加密流量&#xff0c;可能会恢复明文数…

Sqlite3数据库表内数据批量读取操作---sqlite3_stmt机制

0、引言 在前面两篇文章已经对数据环境搭建、数据批量写入库中进行了较为详细的讲解。因此&#xff0c;基于前两篇文章内容的基础上&#xff0c;本文主要从数据库中批量数据读取操作进行梳理讲解。 嵌入式数据库SQLite 3配置使用详细笔记教程_sqlite3-CSDN博客 SQLite 3 优化批…

【机器学习】4. 相似性比较(二值化数据)与相关度(correlation)

SMC Simple Matching Coefficient 评估两组二进制数组相似性的参数 SMC (f11 f00) / (f01f10f11f00) 其中&#xff0c;f11表示两组都为1的组合个数&#xff0c;f10表示第一组为1&#xff0c;第二组为0的组合个数。 这样做会有一个缺点&#xff0c;假设是比较稀疏的数据&…