Java入门篇 之 类与对象

news2024/11/26 19:54:47

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

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

冲冲冲!!!!

目录

 一 . 引用的介绍

二 . 基本类型 

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

代码演示 :

基本成员默认值

四.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.coloradmin.cn/o/1182579.html

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

相关文章

洛谷P2196 [NOIP1996 提高组] 挖地雷【动态规划思路分析】看完直接举一反三!

P2196 [NOIP1996 提高组] 挖地雷 前言题目题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题目分析注意事项 代码后话额外测试用例样例输入 #2样例输出 #2 王婆卖瓜 题目来源 前言 我发现我是天才,只做了三道动态规划的类型题就感觉我已经炉火纯青了。大…

如何实现生产质量精细化管理?

导 读 ( 文/ 1528 ) 在现代制造业中,实现生产质量的精细化管理对企业的竞争力至关重要。本文将介绍三个关键步骤,包括建立全面质量管理体系、采用数据驱动的质量监控和实时反馈机制,以及持续改进和员工培训,帮助企业实现生产质量的…

[答疑]大老二和德州扑克-属性值没变,状态怎么变了

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 邬俊杰 2023-10-31 21:20 课上说状态是由属性值决定的,比如身高>170算高,某人身高175,算高。如果规则改了,身高>180算高&#xf…

即插即用篇 | YOLOv8 引入Super Token Sampling ViT | 《CVPR 2023 最新论文》

论文地址:https://arxiv.org/abs/2211.11167 代码地址:https://github.com/hhb072/STViT 视觉变换器已经在许多视觉任务中取得了令人印象深刻的性能。然而,它在捕捉浅层的局部特征时可能会受到高度冗余的影响。因此,引入了局部自注意力或早期卷积,这些方法牺牲了捕捉长距…

生产问题分析:批量执行慢,根据日志进行分析。

1.首先拿到日志,查看批量执行的时间段为36:58-42:24 2.截取时间段为36:58-42:24的日志内容。 3.从该批量的第一个代码看起,sql会打印在日志里,查找第一个sql,对照代码一个个看下去。 4.发现两个sql执行的时间间隔特别长&#xff1…

云尘 命令执行系列

第一题 system <?php include "flag.php";if (isset($_POST[cmd])) {system($_POST[cmd]); }show_source(__FILE__);代码如上 system($_POST[cmd]); POST请求发送一个名为 cmd 的参数&#xff0c;然后将该参数的值传递给系统命令执行函数 system()&#xff0c…

高并发下Redis缓存与数据库双写一致性问题原理分析和解决方案

目录 一、什么是缓存与数据库双写不一致性二、常见保证高并发下双写一致性方案2.1、延迟双删&#xff08;不可靠&#xff09;2.2、分布式读写锁&#xff08;可靠&#xff09;2.3、MQ异步消费&#xff08;不可靠&#xff09;2.4、订阅数据库变更日志&#xff08;不可靠&#xff…

2023年十大地推拉新接单平台和网推接单平台,都是一手单

2023年做拉新推广的地推人员&#xff0c;一定不要错过这十个接单平台&#xff0c;助你轻松找到一手单&#xff0c;这10个平台分别是&#xff1a; 主推&#xff1a;“聚量推客” 一手官签接单平台 一手官方邀请码 000000 1. 聚量推客&#xff1a; “聚量推客”汇聚了众多市场…

怎样选择适合自己的ITSM软件?

市场上ITSM解决方案琳琅满目&#xff0c;每种解决方案都有其优点和缺点。这使选择决策过程变得复杂&#xff0c;当组织机构决定投资ITSM软件时&#xff0c;很难如愿选择到一款最适合自己的帮助台软件。 而小编有一套系统的决策方法&#xff0c;可以帮助您简化评估过程&#xff…

Dart(一):Dart入门

Dart入门 Dart安装创建项目安装依赖&#xff08;以http为例&#xff09;依赖库查询地址添加依赖编写运行示例 dart常用命令引用核心库、自定义库、第三方库数据类型Numbers (int, double)Strings (String)Booleans (bool)Lists (List)Maps (Map)Sets (Set)Null (null)Records (…

Django初窥门径-自定义附件存储模型

前言 Django自带了一个名为FileField的字段&#xff0c;用于处理文件上传。然而&#xff0c;有时我们需要更多的控制权&#xff0c;例如定义文件的存储路径、文件名以及文件类型。在本篇文章中&#xff0c;我们将探讨如何自定义Django附件存储模型。 创建attachment应用 pyt…

Unity3d C#实现编辑器不运行状态下执行的脚本

第一章方式&#xff1a; 函数前面 [ContextMenu("Play")] &#xff0c;Inspector面板右键调用 第二种方式&#xff1a; OnValidate() &#xff0c;值改变自动执行 using UnityEngine; using System.Linq;public class NightController : MonoBehaviour {pub…

只需十分钟,快速入门Python3!

文章目录 前言1. 原始数据类型和运算符2. 变量和集合3. 流程控制和迭代器4. 函数5. 类6. 模块7. 高级用法关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小…

软考的好处 拥有软考证书的8大作用

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 1、软考证书认可度高 近年来《国家职业资格…

YOLOv5改进之CODConv,全维动态卷积再改进

目录 一、理论部分 网络结构 二、CODConv 代码 应用到YOLOv5中 一、理论部

本地生活餐饮视频怎么拍摄能有更多流量?如何批量生产呢?

本地生活近几年特别的火&#xff0c;所以到现在各类内容雷同性也比较高&#xff0c;视频缺少新的创意和玩法&#xff0c;像餐饮店的视频&#xff0c;大部分都是拍顾客进门、拍餐饮店座无虚席的实景……作为用户&#xff0c;其实早就已经看腻了。 今天推荐本地生活餐饮店商家拍…

旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法【计算机毕设项目】

一、介绍 旅游管理与推荐系统。本系统使用Python作为主要编程语言&#xff0c;前端采用HTML、CSS、BootStrap等技术实现界面展示平台的开发&#xff0c;后端使用Django框架处理用户响应请求&#xff0c;并使用Ajax等技术实现前后端的数据通信。本系统主要功能有&#xff1a; …

【ROS】Nav2源码之nav2_collision_monitor详解

【ROS】郭老二博文之:ROS目录 1、简介 nav2_collision_monitor碰撞监视器是一个节点,为机器人提供了一个额外的安全级别。 它使用来自传感器的数据,执行若干与避免碰撞相关的任务,绕过成本图和轨迹规划器,监测是否需要紧急停止或者减速。 2、安全行为 Collision Mon…

ARMday03(寄存器读写、栈、程序状态寄存器、软中断和异常、混合编程)

单寄存器内存读写指令 将一个寄存器中的数值写入到内存&#xff0c;或者从内存中读取数据放在某一个指定寄存器中 指令码和功能 1.向内存中写&#xff1a; str{条件码} 目标寄存器,[目标地址]&#xff1a;将目标寄存器的4字节数值写入到目标地址为首地址的空间中 strh{条件码…

0X03

红包题第二弹 看到源码里面的提示 ?cmdphpinfo(); 看到源码 kk 关键点就是有两个正则表达式 第一个 preg_match("/[A-Za-oq-z0-9$]/",$cmd) 第二个 preg_match("/\~|\!|\|\#|\%|\^|\&|\*|\(|\)|\&#xff08;|\&#xff09;|\-|\_|\{|\}|\[|\]|\|\&q…