Java类和对象引入

news2024/9/20 7:56:42

目录

1.类与对象引入 

2.类与对象关系示意图

3.类与对象的区别和联系

4.属性/成员变量

基本介绍 

注意事项和细节说明 

5.如何创建对象

先声明再创建

直接创建 

6.如何访问属性

基本语法 

7.类和对象的内存分配机制(重要)

案例演示:

8.创建对象的流程简单分析 

9.练习题 

内存布局图 


1.类与对象引入 

如果我们要表示一只猫,这只猫有它对应的名字,年龄,颜色。

每只猫的信息都要这样表示,不利于数据的管理。 

引入类与对象,根本原因就是现有的技术不能完美的解决新的需求。 

oop:类与对象 。

2.类与对象关系示意图

类就是数据类型,对象就是一个具体的实例。

类的定义方式与c加加类似,区别是java里定义类后的大括号后面不用加分号 ,还有java里初始化一个对象时要用new。

3.类与对象的区别和联系

类是抽象的,对象是具体的。类是对象的模板。 

字符串会存放在方法区的常量池里。

类cat存放在栈空间里,存的是一个地址,这个地址指向堆空间里。 

4.属性/成员变量

基本介绍 

注意事项和细节说明 

1d263509135143e498dead1e0f967e2f.png

 

创建了一个名字为Person的类,其里面有4个属性。 

5.如何创建对象

先声明再创建

 

直接创建 

6.如何访问属性

基本语法 

对象名.属性名即可。 

7.类和对象的内存分配机制(重要)

 对象直接赋值时,其实赋的是地址

此时p2相当于p1的别名,更改p2也就是同时在更改p1

此时的p2.age其实就是p1.age。

案例演示:

package com.cypressbox;

import java.util.Scanner;
public class helloworld {

    //编写一个main方法
    public static void main(String[] args) {
        person p1 = new person();
        p1.name = "应星";
        p1.age = 500;
        person p2 = p1;
        p1.age = 2000;
        System.out.println(p2.age);
    }
}

class person {
    String name;
    int age;
}

 

 

8.创建对象的流程简单分析 

9.练习题 

内存布局图 

因为b此时指向为空,所以访问b的age的值时会出现异常。

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

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

相关文章

string类的模拟实现(C++)

一、前言 想要模拟实现一个库中的类,那就要首先要熟悉如何使用这个类。建议通过下面博客,完成对Cstring类的学习。 C的string类-CSDN博客 二、模拟实现 我们将从string的成员函数即成员变量入手,模拟实现string类。 成员变量 string类的…

Spring Boot项目实现调用腾讯云进行人脸识别

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 背景 随着科技的不断发展,人脸识别技术已经成为了一种日益重要的身份验证和安全监控手段。腾讯云人脸识别功能便是其中之一,而Java语言又是现在最为常用且高效的编程语言之一。本篇论…

mongoDB 的安装和使用【docker compose,springboot】

一 介绍 NoSQL数据库 NoSQL:Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。 Nosql优点 l 满足对数据库的高并发读写 l 对海量数…

思维+dfs,CF 269C - Flawed Flow

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 269C - Flawed Flow 二、解题报告 1、思路分析 考虑源点相连的边的方向是确定的,因为流量是从源点往外流的 我们设cap[u] 为 和u相连边的容量和,显然入边容量要和出边容量相等&…

6.C基础_输入输出函数

putchar 功能:输出一个字符 函数声明: int putchar(int c);返回值:参数c的ASCLL码值 c:要输出的字符,可以为字符常量、字符变量或表达式 注意点:输出的结果不带\n getchar 功能:从键盘读…

Day28 | 56. 合并区间 738.单调递增的数字 968.监控二叉树

语言 Java 56. 合并区间 合并区间 题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 思路 创建…

基于单片机的ELF可执行文件加载以及Bootloader程序实现程序切换

目录 1.ELF可执行文件加载 1.1 ELF文件分类 1.2 ELF文件格式 1.3链接地址 ​编辑 2.Bootloader程序切换 2.1 Bootloader介绍 2.2 代码实现 1.ELF可执行文件加载 ELF(Executable and Linkable Format)文件是一种标准的文件格式,用于可…

秒懂Linux之编写小程序——进度条

目录 一.前文摘要 二.进度条编写 三全部代码(非Linux环境下测试) 一.前文摘要 在开始编写之前我们先来学习一些后面会用到的知识点~ 测试结果发现,Sleep无作用,编译完会立刻打印~ 再来看另一个测试~我们同样没有换行&#xff0c…

前后端中的日期格式转换问题

从前端接收到的日期转为想要的格式 JSON日期的反序列化为java对象时 JsonFormat(timezone “GMT8”, pattern “yyyy-MM-dd HH:mm:ss”) 从后端发送的日期转为想要的格式给前端 Java对象中的日期的序列化为JSON时会用到 Date数据序列化为JSON发往前端时,按以下格…

【机器学习西瓜书学习笔记——支持向量机】

机器学习西瓜书学习笔记【第六章】 第六章 支持向量机6.1 间隔与支持向量硬间隔最大化 6.2 对偶问题6.3核函数定义构建核函数应用优劣优势劣势 6.4 软间隔与正则化软间隔正则化 6.5支持向量回归(SVR)函数间隔和几何间隔SVR的原理SVR数学模型线性硬间隔SV…

The dependencies of some of the beans in the application context form a cycle

你们好,我是金金金。 场景 启动服务时,报错:应用程序上下文中的某些bean的依赖关系形成了一个循环 循环依赖 依赖循环指的是两个或多个类之间相互依赖的情况,即类A依赖类B,同时类B也依赖类A。 这种情况会导致编译器无…

java接口只能定义抽象方法吗?

写在前面 在Java中接口时作为规范来存在的&#xff0c;那么除了抽象方法&#xff0c;接口中还能定义其他方法吗?比如静态方法&#xff1f;本文一起来看下。 1&#xff1a;正文 这并不是一个绝对的是和否的问题&#xff0c;不同的jdk版本表现不同&#xff0c;在<1.7的版本…

用例管理框架

用例管理框架之pytest单元测试框架&#xff08;上&#xff09; 一、pytest用例管理框架&#xff08;单元测试框架&#xff09; 1.分类&#xff1a; python&#xff1a;unittest&#xff0c;pytest 必须非常熟练 2.主要作用&#xff1a; 发现测试用例&#xff1a;从多个py文…

深入理解 C 语言中的联合体

目录 引言 一、 联合体的定义与基本用法 1.联合体的定义 2.基本用法 二、 联合体与结构体的区别 1.结构体 2.联合体 3.对比 ​编辑三、联合体的优势 1. 节省内存 2. 提高效率 3. 代码简洁性 四、联合体的存储细节 1.内存对齐 2.大小计算 五、联合体的高级用法…

Windows内核态开发笔记

文章目录 r3/r0通信x64 HOOK回调监控进程强杀minifilterObRegisterCallbacksWFP后记 r3/r0通信 用户态 #include <Windows.h> #include <stdio.h>#define SENDSTR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS) void main() {HANDLE …

Reader

FileInputStream和FileOutputStream其实还叫字节输入流和字节输出流。关于输入和输出这2个总是有点模糊。 以内存为基准&#xff0c;InputStream是文件流向内存&#xff0c;就是从文件中读取数据&#xff0c;又称为输入流。 OutputStream是从内存中流向文件&#xff0c;就是向…

使用s3cmd 2.x 与 Cyberduck 管理在 DigitalOcean Spaces 对象存储中的数据

有很多用户在使用 DigitalOcean Spaces 对象存储的过程中&#xff0c;还没有找到一个合适的数据管理工具。其实目前有很多开源工具都可以使用&#xff0c;比如 s3cmd、Cyberduck、rclone、transmit5。Cyberduck 提供了直观的图形用户界面&#xff0c;而 s3cmd 2.x 则擅长于批处…

怎么搭建AI带货直播间生成虚拟主播?

随着电商直播带货的热潮不断升温&#xff0c;虚拟主播逐渐崭露头角&#xff0c;成为电商直播领域的新宠&#xff0c;相较于真人主播&#xff0c;虚拟主播具备无档期风险、人设稳定可控、24小时不间断直播等显著优势。 本文将深入探讨如何搭建一个AI带货直播间&#xff0c;并详…

最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台

简介&#xff1a; 最新小猫咪PHP加密系统源码V1.4_完全本地化加密API接口_带后台 小猫咪PHP加密系统历时半年&#xff0c;它再一次迎来更新&#xff0c;更新加密算法&#xff08;这应该是最后一次更新加密算法了&#xff0c;以后主要更新都在框架功能上面了&#xff09;&…

在WordPress上启用reCAPTCHA的指南

随着网络安全问题的日益严重&#xff0c;网站管理员必须采取措施保护自己的网站免受恶意攻击。对于WordPress用户来说&#xff0c;可以通过启用谷歌的reCAPTCHA功能来增强网站的安全性。本文将介绍两种在WordPress上启用reCAPTCHA的方法&#xff1a;使用插件和手动添加代码。 一…