当前位置: 首页 > news >正文

一个月学会Java 第2天 认识类与对象

Day2 认识类与对象

第一章 初识类

经过一个程序的编写,应该对程序的结构有点好奇了吧,如果你有基础,接下来的肯定非常的易懂,如果你没有基础也没有关系,反复琢磨一下也就懂了😆

我们来重复一下第一个程序

public class Hello {public static void main(String[] args) {System.out.println("Hello world");}
}

我们以空格划分多个单词,比如第一行的public就是第一行的第一个,class就是第一行的第二个单词,第二行的public就是第二行的第一个单词,如此。

首先我们看类名也就是class后面跟着的单词也就是第一行第三个单词,这个尤为的重要,比如我的文件名并不叫做Hello.java
那我这样编译就会出问题,即使我是hello.java
也会出问题,因为Java是一个对大小写敏感的程序,和Python、C、C++、JavaScript等等是一样的。对大小写不敏感的有各种数据库啊、还有操作系统的文件系统,比如linux或者windows或者是macOS等等,这是第一点。

第二点,公有类名要与文件名一致。没错,你一个Java文件内可以有多个类,但是公有类
只能有一个,就是带public class [类名/文件名]里面的类名,然后你还可以并行很多类像这样

命名规则的话查看normal
solutions.md里面就行

//唯一的public类,类名必须和文件名一致,不然就会报错
public class Hello {//我是单行注释使用两个斜杠就可以使用注释了//是只会在看代码的阶段存在,编译后并不存在//但是我建议删掉注释,因为我打的是中文可能会出现编码问题//如果你会改编码的话那就是最好的,如果你不会的话删掉就不会出问题了//或者你可以去看看normal solutions.md那个文件public static void main(String[] args) {/*这个是多行注释使用杠星星杠的方式框柱*/System.out.println("Hello world");}
}//非public类可以无限多
class ABC {public static void main(String[] args) {System.out.println("Hello");}
}//只不过每个类被编译后又会出现一个新的字节码文件也就是.class文件
class QWE {}

在这里插入图片描述

如果看了第一天全文字还没被劝退说明你还是有耐心的,可以真的开始学习Java了,

但是这里也很明显因为有三个类虽然放在了一起但是编译出来其实还是三个文件,就是说我其实直接再开两个Java文件也是一样的。这里我们在ABC
类和Hello类中都有打印,我们来运行一下

在这里插入图片描述

这里的信息也告诉了我们,我们需要main这么一个“方法”才可以运行,那就说明大家想要运行程序必须要有这么一个main
方法,只需要照着写其实就可以了public static void main(String[] args)

然后想要打印信息只需要把信息放到System.out.println("");的双引号中间即可打印对应的信息。

第二章 数据类型

每个语言都有数据类型,像Java、C、C++、C#、Python这些都是强类型语言,JS(JavaScript)、vb、php这些就是弱类型语言。
但是强类型语言也分明显与不明显,比如Java、C、C++、C#这些就需要先声明再使用,然后Python是直接赋值但是底层类型还都是规定好的,整形就是整形,浮点就是浮点,字符串就是字符串。
弱类型语言就是要声明也就只是声明有这个变量并没有规定是什么数据类型。

Java的数据类型有四种,每种又有其他的分类

  • 整形
    • byte 1字节
    • short 2字节
    • int 4字节
    • long 8字节
  • 浮点
    • float 4字节
    • double 8字节
  • 布尔
    • boolean 1字节
  • 字符
    • char 2字节

这些数据类型拿来使用的时候(声明变量)都是做关键字的。就比如public,class,static,void
这在上面变成了特殊颜色的就是关键字,在github上的配色方案应该是红色,然后刚刚上面说的8个数据类型也都是关键字。

先来讲讲字节是什么(懂的可以跳过),1个字节 = 8,一个位就是2进制的数,比如0000 0001就是1,0000 0010
就是2,0000 0100
就是4,0000 1000
就是8,如果不会的但是细心的你会发现这不就是2的0到3次幂吗,没错就是这样,通过这样的排列组合在到达0001 0000
的16之前,其实后四个数就能表示0 ~ 15,这就是二进制,然后8个为一个字节
,相当于byte一个字节那就可以装下256个数,但是要表示负数和正数和0,所以范围是-128 ~ 127,比如int是4个字节也就是32位,那他的最小就是-2^31,最大就是
2^31 - 1,因为需要一个数去表示0。 浮点又是其他的方式存储,布尔又是只有表示正确的true和表示错误的false,字符又是根据unicode进行存储。

public class Hello {public static void main(String[] args) {int i = 50; //变量的声明并赋值 = 号是赋值System.out.println(i);}
}

在这里插入图片描述

以上就是声明变量,通过关键字 变量名的方式去声明并赋值int i = 50,在代码里面单个=的作用就是赋值
然后可以通过打印的方式来具现化,自然我们也可以做运算

public class Hello {public static void main(String[] args) {int i = 50;int i2 = 100;//在打印之中也是可以运算的System.out.println(i + i2);}
}

在这里插入图片描述

自然我们也可以拼接字符串来说明信息比如这样,这个时候就要说+号的不同作用了,在与字符串和任何值使用+
的时候他就会变成拼接,在数与数之间就是运算,自然在字符串和字符串中间也是拼接

public class Hello {public static void main(String[] args) {int num = 100;int num2 = 1000;int num3 = 500;//自然也有拼接System.out.println("num:" + num + num3 + " num3 + num2: " + (num2 + num3));}
}

在这里插入图片描述

明显能看出其中的端倪,num + num3并没有相加而是拼接在了一起,而后面的(num2 + num3)
确实是相加在了一起,这就是区别,如果想要运算那就加上括号,如果要拼接那就使用和字符串相加的方式,这里也能清楚看到因为运算是从左到右的,所以他是先把"num:"
这个字符串和num拼接,所以变成了字符串"num:100"再下去计算也只是拼接而已。

当然我们的变量声明可不只是能在main方法里的,还可以在main的外面进行声明,这就要讲到下一个知识点了对象

第三章 初识对象

这个其实思维和变量是一样的,也是需要声明并赋值,只不过他是这个变量里面还有东西需要使用.去获取,然后从数据类型扩展到类名做声明

public class Hello {int i = 50;     //这个就是全局变量的声明并赋值public static void main(String[] args) {//如果我想要使用这个在main之外但是在Hello类之内的i话//那就需要创建这个类的对象像这样Hello h = new Hello();  //这就是创建对象和变量差不多int i1 = 50000;     //实际上是很像的//对象就相当于是把我们的这个Hello类拿过来当变量了//然后我们可以使用.的这个方式去获取main之外Hello之内的东西System.out.println(h.i);//自然我也可以更改掉这个i就像这样System.out.println("change h.i");h.i = 500;System.out.println(h.i);}
}

在这里插入图片描述

如果你再创建一个对象hello,他的i自然还是50,自然也是独立存在,你变更的只有h里的i,

public class Hello {int i = 50;public static void main(String[] args) {Hello h = new Hello();int i1 = 50000;System.out.println(h.i);System.out.println("change h.i");h.i = 500;System.out.println(h.i);Hello hello;    //我先声明hello = new Hello();//后赋值System.out.println(hello.i);}
}

在这里插入图片描述

相关文章:

一个月学会Java 第2天 认识类与对象

Day2 认识类与对象 第一章 初识类 经过一个程序的编写,应该对程序的结构有点好奇了吧,如果你有基础,接下来的肯定非常的易懂,如果你没有基础也没有关系,反复琢磨一下也就懂了😆 我们来重复一下第一个程序 …...

【WRF数据准备】MODIS静态地理数据下载及制备

【WRF数据准备】MODIS静态地理数据下载及制备 MODIS数据介绍数据下载数据拼接MRT工具介绍基于MRT软件完成数据拼接 格式转换:tif文件转二进制格式编写INDEX修改GEOGRID.TBL以及namelist.wps修改GEOGRID.TBL修改namelist.wps 参考 MODIS数据介绍 MODIS-MCD12Q1 v061…...

MySQL数据库——索引

目录 什么是索引(Index)? 怎样加索引? 索引的特点 索引类型 主键索引(Primary Key) 辅助索引(二级索引) 聚集索引和非聚集索引 聚集索引 非聚集索引 单列索引和联合索引 单列索引 联合索引 创…...

【SpringCloud】服务注册/服务发现-Eureka

服务注册/服务发现-Eureka 1. 背景1.1 问题描述1.2 解决思路1.3 什么是注册中⼼1.4 CAP理论1.5 常⻅的注册中⼼ 2. Eureka 介绍3. 搭建Eureka Server 1. 背景 1.1 问题描述 上个章节的例⼦中可以看到, 远程调⽤时, 我们的URL是写死的 String url "http://127.0.0.1:90…...

让你的Github Profile高大时尚!

目录 前言 正文 GitHub Profile 特点: GitHub Actions 核心概念: 应用场景: RSS RSS的主要特点: 使用场景: RSS的工作原理: 关于Github Readme Card 关于Github贡献的3D图 关于个人最新博文的获取 关于代码…...

ElasticSearch备考 -- Multi match

一、题目 索引task有3个字段a、b、c,写一个查询去匹配这三个字段为mom,其中b的字段评分比a、c字段大一倍,将他们的分数相加作为最后的总分数 二、思考 通过题目要求对多个字段进行匹配查询,可以考虑multi match、bool query操作。…...

滚雪球学Oracle[2.5讲]:数据库初始化配置

全文目录: 前言一、配置文件的高级参数设置1.1 open_cursors:游标打开数量限制案例演示 1.2 session_cached_cursors:会话缓存游标数量案例演示 1.3 pga_aggregate_target与sga_target:内存分配优化案例演示 二、内存管理模式的选…...

Java - Spring框架 (ios+aop)

Spring 简介 Spring框架是为了解决企业应用开发的复杂性,使用基本的JavaBean代替EJB,并提供了更多的企业应用功能,Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。 Spring优点 Spring是一个开源的免费的框架(容器) Spring是一…...

计算机网络(十) —— IP协议详解,理解运营商和全球网络

目录 一,关于IP 1.1 什么是IP协议 1.2 前置认识 二,IP报头字段详解 三,网段划分 3.1 IP地址的构成 3.2 网段划分 3.3 子网划分 3.4 IP地址不足问题 四,公网IP和私有IP 五,理解运营商和全球网络 六&#xff…...

速速收藏!这些2024年上映的AI电影与短剧,申请加入你的国庆假期宅家计划!

2024年上映的AI电影 01 科幻惊悚电影《致命AI Afraid》 导演:克里斯韦兹上映日期:2024-08-30(美国)片长:84分钟剧情简介:Curtis一家被选中去测试一种革新性的居家设备:数字家庭助手AIA,包括各种感应设备和摄像头等,…...

23.2 prometheus为k8s做的4大适配工作

本节重点介绍 : k8s监控中的4大采集类型总结prometheus为k8s监控做的4大适配工作 k8s关注指标分析 在监控每个细分的领域时,我们都要先思考下到底需要关注哪些方面的指标。k8s中组件复杂,我们主要专注的无外乎四大块指标:容器基础资源指标…...

1、如何查看电脑已经连接上的wifi的密码?

在电脑桌面右下角的如下位置:双击打开查看当前连接上的wifi的名字:ZTE-kfdGYX-5G 按一下键盘上的win R 键, 输入【cmd】 然后,按一下【回车】。 输入netsh wlan show profile ”wifi名称” keyclear : 输入完成后,按一下回车&…...

循环链表和双向链表

一、 带尾指针的循环链表的合并 算法步骤: p存表头结点——pTa->next;Tb表头连接到Ta表尾——Ta->nextTb->next->next;释放Tb表头结点——delate Tb->next;修改指针——Tb->nextp; LinkList Connect(LinkList Ta,LinkList Tb){pTa->next; …...

【Linux庖丁解牛】—Linux基本指令(中)!

🌈个人主页:秋风起,再归来~🔥系列专栏: Linux庖丁解牛 🔖克心守己,律己则安 目录 1、rmdir与rm指令 2、man指令 3、cp指令 4、mv指令 5、cat与tac指令 6、重定向 7、more指令 8、…...

【电路笔记】-运算放大器微分器

运算放大器微分器 文章目录 运算放大器微分器1、概述2、运算放大器微分器的表示2.1 理想微分器2.2 输出公式2.3 交流分析3、实际微分器3.1 理想配置的局限性3.2 带串联电阻的伪微分器3.3 具有并联电容器的伪微分器4、总结1、概述 在我们之前关于积分器运算放大器的文章中,我们…...

【Unity踩坑】使用内购时获取Google Play license key

在Unity中使用了IAP(内购)后,需要设置Google Play license key。 这个key需要在Google Play Console中(https://play.google.com/console),找到相应的应用,在左侧“创收设置”里可以找到license…...

华为OD机试真题-数组拼接-2024年OD统一考试(E卷)

最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 每一题都含有详细的解题思路和代码注释,精选c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。 题目描述 现在有多组整数数…...

【Android 14源码分析】Activity启动流程-2

忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…...

ubuntu 18.04 cuda 11.01 gpgpu-sim 裸机编译

1,环境 ubuntu 18.04 x86_64 cuda 11.01 gpgpu-sim master commit 90ec3399763d7c8512cfe7dc193473086c38ca38 2,预备环境 一个比较新的 ubuntu 18.04,为了迎合 cuda 11.01 的版本需求 安装如下软件: sudo apt-get instal…...

【Kubernetes】常见面试题汇总(五十二)

目录 116. K8S 集群服务暴露失败? 117.外网无法访问 K8S 集群提供的服务? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-…...

Flink源码阅读:双流操作

Window Join我们先回顾一下 window join 的使用方法。DataStream<Tuple2<String, Double>> result source1.join(source2).where(record -> record.f0).equalTo(record -> record.f0).window(TumblingEventTimeWindows.of(Time.seconds(2L))).apply(new Joi…...

屏幕取色与设计辅助工具 ColorWanted:提升设计师与开发者工作效率的专业解决方案

屏幕取色与设计辅助工具 ColorWanted&#xff1a;提升设计师与开发者工作效率的专业解决方案 【免费下载链接】ColorWanted Screen color picker for Windows (Windows 上的屏幕取色器) 项目地址: https://gitcode.com/gh_mirrors/co/ColorWanted 你是否曾遇到这样的工作…...

酒精测试仪

简 介&#xff1a; 本文介绍了一款酒精测试仪的使用方法。测试仪开机后需等待15秒预热&#xff08;数字倒计时&#xff09;&#xff0c;预热结束后对着吹气口吹气3秒即可显示测量结果。实验表明&#xff0c;该仪器灵敏度较高&#xff1a;直接吹气显示11左右&#xff0c;不吹气显…...

【T型三电平仿真】SPWM调制中的单双极性载波特性对比

1. T型三电平逆变器基础认知 第一次接触T型三电平拓扑时&#xff0c;我被它精巧的结构设计惊艳到了。与传统的两电平逆变器相比&#xff0c;这种拓扑在每相桥臂上增加了两个钳位开关管&#xff0c;形成了独特的"T"字形结构。实际搭建电路时&#xff0c;你会发现它的输…...

大麦网自动抢票脚本:告别手速焦虑,轻松抢到心仪票务

大麦网自动抢票脚本&#xff1a;告别手速焦虑&#xff0c;轻松抢到心仪票务 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 还在为抢不到演唱会门票而烦恼吗&#xff1f;每次…...

Hackintool:面向黑苹果爱好者的硬件配置诊断与优化工具

Hackintool&#xff1a;面向黑苹果爱好者的硬件配置诊断与优化工具 【免费下载链接】Hackintool The Swiss army knife of vanilla Hackintoshing 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintool 黑苹果配置过程中&#xff0c;硬件兼容性问题常常成为用户最头…...

3大场景解放双手:SteamShutdown智能管理下载与自动控制电脑的完整方案

3大场景解放双手&#xff1a;SteamShutdown智能管理下载与自动控制电脑的完整方案 【免费下载链接】SteamShutdown Automatic shutdown after Steam download(s) has finished. 项目地址: https://gitcode.com/gh_mirrors/st/SteamShutdown 你是否曾在深夜开启游戏下载后…...

从连续到离散:用Python小例子复现Mamba SSM的零阶保持离散化(含完整代码)

从连续到离散&#xff1a;用Python小例子复现Mamba SSM的零阶保持离散化&#xff08;含完整代码&#xff09; 在深度学习领域&#xff0c;状态空间模型&#xff08;State Space Model, SSM&#xff09;因其对序列数据的强大建模能力而备受关注。Mamba作为SSM的最新演进&#x…...

告别玄学调参:手把手教你用STM32F103和MPU9250实现稳定的EKF姿态解算(附源码)

从理论到实战&#xff1a;STM32F103与MPU9250的EKF姿态解算调参全指南 在嵌入式姿态解算领域&#xff0c;扩展卡尔曼滤波&#xff08;EKF&#xff09;算法因其优异的噪声抑制能力而广受青睐。然而&#xff0c;许多开发者在STM32F103等资源受限平台上实现MPU9250的EKF姿态解算时…...

给数学恐惧症患者的DDPM前向扩散公式拆解:从‘图像变糊’到一行代码生成任意噪声图

给数学恐惧症患者的DDPM前向扩散公式拆解&#xff1a;从‘图像变糊’到一行代码生成任意噪声图 想象一下&#xff0c;你正在搅拌一杯咖啡。最初&#xff0c;咖啡是纯黑色的&#xff0c;但随着你不断加入牛奶&#xff0c;颜色逐渐变浅&#xff0c;最终变成一杯乳白色的液体。这…...