Java入门篇 之 类与对象

本篇碎碎念:博主作为一个三本学生,庆幸自己上了个本科,但是在支付高昂学费的时候认识到,自己要好好学习,不好好学习,难道以后给人端盘子咩;无论是专科还是本科,都不可以自暴自弃,未来是由自己创造的,如果自己都不相信自己,谁又会来相信你呢???

今日份励志文案:凡是皆有可能,永远别说永远

冲冲冲!!!!

目录

 一 . 引用的介绍

二 . 基本类型 

三 . 创建新的数据类型 : 类

代码演示 :

基本成员默认值

四.this引用

this的使用方法:(this代表当前对象的引用)

this引用的特性


 

 一 . 引用的介绍

拥有一个引用不需要有一个对象与它关联;因此,如果想操作一个词或句子,则可以创建一个String引用:

String s;

但是这里所创建的只是引用,并不是对象,如果此时向 s 发送一个消息,就会返回一个运行时错误,这是因为此时s实际上没有与任何事物相关联。因此,一种安全的做法是: 创建一个引用的同时边进行初始化

例如 String s=" asdf ";

上述语句用到了Java语言的一个特性:字符串可以用带引号的文本初始化;

Java编程思想(第四版)中介绍到:可以将这一情形想像成用遥控器(引用)来操纵电视机(对象)。只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或者减小音量时,实际操控的是遥控器(引用),再由遥控器来调控电视机(对象)。如果想在房间里四处走走,同时仍能调控电视机,那么只需携带遥控器(引用)而不是电视机(对象)

一旦创建了一个引用就希望它能与一个新的对象相关联,通常用new操作符来实现这一目的,new关键字的意思是" 给我一个新对象 "

String s = new String("asdf");

注意事项:

1.new 关键字用于创建一个对象的实例

2.使用.来访问对象中的属性和方法

3.同一个类可以创建多个实例

Java有一个垃圾回收器,用来监视用 new 创建的所有对象,并辨别那些不会再被引用的对象。

随后,释放这些对象的内存空间,以便供其他新的对象使用

也就是说,你根本不必担心内存回收的问题。

你只需要创建对象,一旦不再需要,它们就会自行消失。

这样做就消除了这类编程问题(即“内存泄漏”),这是由于程序员忘记释放内存而产生的问题。


 

二 . 基本类型 

基本类型大小最小值最大值
boolean——————
char16 - bitUnicode 0Unicode 2^{16}
byte8 bits-128+127
short16 bits2^{15}+2^{15}  - 1
int 32 bits-2^{31}+2^{31} - 1
long64 bits-2^{63}+2^{63}-1
float32 bitsIEEE 754IEEE 754
double64 bitsIEEE 754IEEE 754

 

IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。 这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值(无穷∞与非数值NaN),以及这些数值的“浮点数运算符”

boolean 类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或false


三 . 创建新的数据类型 : 类

从历史发展角度来看,大多数面向对象的程序设计语言习惯用关键字class来表示

class这个关键字之后紧跟着的是新类型的名称

注意事项:

1.类名注意采用大驼峰

2.成员前写法统一为public(后面会做详细介绍)

class 名称 { 对象名称  = new 名称();       }

代码演示 :

class Student {public String name ;public int age;public String sex;
}
public class happy {public static void main(String[] args){Student people=new Student();people.age=20;people.name="ly";people.sex="女";System.out.println("年龄:"+people.age);System.out.println("姓名:"+people.name);System.out.println("性别:"+people.sex);}
}

 

代码讲解:  创建一个类的对象名字为Student,在Student中定义了名字,年龄和性别

在main函数中创建一个实例化对象people,通过对象来调用成员变量

调用方法:

对象名称.成员名称=

注意事项:    

1.一般一个文件当中只定义一个类

2.main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)

3.public修饰的类必须要和文件名相同

4.不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改

基本成员默认值

若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值

当变量作为类的成员使用时,Java才确保给定其默认值,以确保那些是基本类型的成员变量得到初始化(C++没有此功能),防止产生程序错误。但是,这些初始值对你的程序来说,可能是不正确的,甚至是不合法的。所以最好明确地对变量进行初始化。 

注意:这个方法不适用于局部变量

基本类型默认值
booleanfalse
char‘\u000’(null)
byte(byte) 0
short(short) 0
int 0
long0L
float0.0f
double0.0d

 

四.this引用

this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。

this的用法和其他对象引用并无不同。但要注意如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。

this的使用方法:(this代表当前对象的引用)

1.this.成员变量   访问成员变量

2.this.成员方法    访问当前的成员方法

3.this()                 调用当前类的成员方法 

如何访问对象当中的成员呢?

一般是通过对象的引用+点号来访问 成员变量 和 成员方法

class Date {public int year;public int month;public int day;public void setDay(int year, int month, int day){this.year = year;this.month = month;this.day = day;}public void printDate(){System.out.println("年:"+this.year+" 月:"+this.month+" 日:"+this.day);}
}
   public static void main(String[] args) {Date a = new Date();a.setDay(2023,11,7);a.printDate();}

this引用的特性

1.this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型

2.this只能在"成员方法"中使用

3.在"成员方法"中,this只能引用当前对象,不能再引用其他对象

4.this是“成员方法”第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法对象的引用传递给该成员方法,this负责来接收 


 

 

如果有解释的不对或者不清晰,如果可以从评论区指出,我一定会加以修改,万分感谢

希望对你们有所帮助

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

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

相关文章

亚马逊云服务器成为了我的首选服务器

背景 作为一名计算机专业的大学生 当完成了自己的前后端项目或者是做出了属于自己的 网址,购买服务器是必不可少的亚马逊云服务器 相比于其他华为云 阿里云 以及腾讯云 等等 有着自己独特的优势 价格原因 学生党最在意的往往还是价格 一个良心亲民的价格 往往可以…

伐木猪小游戏

欢迎来到程序小院 伐木猪 玩法&#xff1a;控制小猪点击屏幕左右砍树&#xff0c;不能碰到树枝&#xff0c;考验手速与眼力&#xff0c;记录分数&#xff0c;快去挑战伐木吧^^。开始游戏https://www.ormcc.com/play/gameStart/199 html <script type"text/javascript…

《微服务架构设计模式》之三:微服务架构中的进程通信

概述 交互方式 客户端和服务端交互方式可以从两个维度来分&#xff1a; 维度1&#xff1a;一对一和多对多 一对一&#xff1a;每个客户端请求由一个实例来处理。 一对多&#xff1a;每个客户端请求由多个实例来处理。维度2&#xff1a;同步和异步 同步模式&#xff1a;客户端…

【Linux】JREE项目部署与发布

目录 一.jdk安装配置 1.1.传入资源 1.2. 解压 1.3. 配置 二.Tomcat安装 2.1.解压开启 2.2. 开放端口 三.MySQL安装 3.1.解压安装 3.2.登入配置 四.后端部署 今天就到这里了哦&#xff01;&#xff01;希望能帮到你哦&#xff01;&#xff01;&#xff01; 一.jdk…

VR全景在旅游中应用有哪些?VR云游的优势是什么?

近日受到剧烈日冕物质抛射活动影响&#xff0c;漠河再现极光美景&#xff0c;极光舞动的灿烂星空下&#xff0c;正在封冻的黑龙江上&#xff0c;无数的冰排随波而去&#xff0c;天地之间光影流动好不美丽。相信很多人都想了解、观赏祖国的大好风光&#xff0c;但是碍于没时间、…

【遍历二叉树算法描述】

文章目录 遍历二叉树算法描述先序遍历二叉树的操作定义中序遍历二叉树的操作定义后序遍历二叉树的操作定义 遍历二叉树算法描述 1.遍历定义&#xff1a;顺着某一条搜索路径寻访二叉树中的结点&#xff0c;使得每一个结点均被访问一次&#xff0c;而且仅访问一次&#xff08;又…

【Qt之绘制兔纸】

效果 代码 class drawRabbit: public QWidget { public:drawRabbit(QWidget *parent nullptr) : QWidget(parent) {}private:void paintEvent(QPaintEvent *event) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);// 绘制兔子的耳朵painter.s…

C语言-指针讲解(2)

文章目录 1.野指针1.1 什么是野指针1.2 造成野指针的原因有哪些呢1.2.1造成野指针具体代码实例&#xff1a; 1.3 如何避免野指针呢?1.3.1如何对指针进行初始化&#xff1f;1.3.2如何才能小心指针越界?1.3.3 指针变量不再使用时&#xff0c;如何及时置NULL,在指针使用之前检查…

单链表的实现

单链表的实现 单链表的链表的概念及结构概念结构链表结构的分类链表常用的结构 无头单向不循环链表头文件 SList.h结构体 struct SListNode 源文件 SList.c创建结点 SLNode* SLBuyNode(SLDataType x)初始化链表 void SLInit(SLNode** pphead)链表尾部插入 void SLPushBack(SLNo…

C语言:计算 1! + 2! + 3! + ... + n!

题目&#xff1a; 从键盘输入一个值n&#xff0c;计算 1的阶乘 至 n的阶乘 的和&#xff0c; 如&#xff1a;输入10&#xff0c;计算 1的阶乘 至 n的阶乘 的和 --> 计算&#xff1a;1! 2! 3! ... 10! 思路一&#xff1a; 效率比较低&#xff0c;会重复计算之前计算过的…

Leetcode-234 回文链表

我的解法&#xff1a;使用栈&#xff0c;定义了len略微复杂&#xff0c;拿链表的后半部分和前半部分比较即可&#xff0c;没必要全部比较 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* List…

如何在在线Excel文档中规范单元格输入

在日常的工作中&#xff0c;我们常常需要处理大量的数据。为了确保数据的准确性和可靠性。我们需要对输入的数据进行规范化和验证。其中一个重要的方面是规范单元格输入。而数据验证作为Excel中一种非常实用的功能&#xff0c;它可以帮助用户规范单元格的输入&#xff0c;从而提…

Java用log4j写日志

日志可以方便追踪和调试问题&#xff0c;以前用log4net写日志&#xff0c;换Java了改用log4j写日志&#xff0c;用法和log4net差不多。 到apache包下载下载log4j的包&#xff0c;解压后把下图两个jar包引入工程 先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参…

matlab中的iddata函数的初步理解和使用程序举例

matlab中的iddata函数的初步理解和程序举例 一、iddata函数功能 iddata函数常用于系统识别分析领域数据分析方面。该函数在时域或频域中&#xff0c;将用于系统识别的输入输出数据及其特性数据的生成对象数据类型。即&#xff0c;可以使用iddata函数封装要标识的系统的输入和…

Mysql数据库 8.SQL语言 外键约束

一、外键约束 外键约束——将一个列添加外键约束与另一张表的主键&#xff08;唯一列&#xff09;进行关联之后&#xff0c;这个外键约束的列添加的数据必须要在关联的主键字段中存在 案例 创建原则&#xff1a;先创建不含外键的表也就是班级表 添加外键的方式 一般使用第一…

HCIE-CCE

1、创建集群 svc网络&#xff0c;10.247 pod网络&#xff0c;10.244 节点网络&#xff0c;192.168.66&#xff08;master和node一致&#xff09; 2、创建节点 上面集群选择了最新版本1.27&#xff0c;CCE从1.27版本开始不再支持docker容器引擎&#xff0c;仅支持containered&…

git笔记

git常见命令 git init :初始化本地仓库&#xff0c;会生成一个.git文件&#xff0c;该文件用于管理和追踪该本地仓库&#xff0c;只有在git仓库下的文件才能被管理! git config user. name "用户名” git config user. email " 邮箱” git config -1 :列出当前git仓库…

python接口自动化测试 —— unittest框架suite、runner详细使用

test suite 测试套件&#xff0c;理解成测试用例集一系列的测试用例&#xff0c;或测试套件&#xff0c;理解成测试用例的集合和测试套件的集合当运行测试套件时&#xff0c;则运行里面添加的所有测试用例 test runner 测试运行器用于执行和输出结果的组件 test suite、tes…

Flask(Jinja2) 服务端模板注入漏洞(SSTI)

Flask&#xff08;Jinja2&#xff09; 服务端模板注入漏洞(SSTI) 参考 https://www.freebuf.com/articles/web/260504.html 验证漏洞存在 ?name{{7*7}} 回显49说明漏洞存在 vulhub给出的payload: {% for c in [].__class__.__base__.__subclasses__() %} {% if c.__name__…

【uniapp小程序下载】调用uni.uploadfile方法在调试工具里是没有问题的,但是线上版本和体验版就调用不成功,真机调试也没问题

把你的下载地址前缀添加到合法域名就解决了 在调试工具里成功了是因为勾选了下面这项 下面是我的下载并打开函数 methods: {// 下载downloadFileFn(data) {if (this.detailsObj.currentUserBuy) {uni.downloadFile({// data是路径url: https:// data,success(res) {//保存到本…