四、Java 基础语法

news2024/11/20 20:27:13

一、Java 的类、对象、方法和实例变量

  • 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
  • 对象:对象是类的一个实例,有状态(实例变量)和行为(方法)。例如:一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,或者大家可以理解为这是一个集合,它描述了一类对象的行为和状态。例如:狗是一个类,一只拉布拉多是一个对象,一只金毛是另一个对象,但它俩同属于一类。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是再方法中完成的。
  • 实例变量每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

二、第一个 Java 程序

  • 接下来我们开始编写第一个程序

1、新建项目

  • 打开 IDEA
  • 首先我们新建一个项目,然后储存到自己想要储存的地方(建议在除C盘之外新建一个文件夹,专门储存以后学习时用到的代码)
    在这里插入图片描述
    在这里插入图片描述
  • 新建项目之后,页面是这样的,我们在这里可以直接把它给的Main删掉
    在这里插入图片描述

2、新建包

  • 新建一个包
    在这里插入图片描述

3、新建类

  • 包名如下所示,当然大家可以自己起名字,主要以后我们方便管理,然后再在包中建一个 Java 类
    在这里插入图片描述

4、开始编写代码

  • 这样我们就建成了一个类,接下来我们开始编写第一个代码
    在这里插入图片描述
  • 第一个代码如下
public class HelloWorld {
    /* 第一个Java程序
     * 它将输出字符串 Hello World
     */
    public static void main(String[] args) {
        System.out.println("Hello World"); // 输出 Hello World
    }
}
  • 结果如下,左下角输出 Hello World ,这样我们就完成了第一个代码
    在这里插入图片描述
  • Java 程序的主方法(main 方法)。在 Java 中,main 方法是程序的入口点,也就是说,当你运行一个 Java 程序时,程序的执行从这个方法开始,下图对此进行简单讲解:
    在这里插入图片描述

三、基本语法

  • 编写 Java 程序时,应注意以下几点:
  • 1、大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
  • 2、类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
  • 3、方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 4、源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 5、主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

四、Java 标识符

  • Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
  • 关于 Java 标识符,有以下几点需要注意:

所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary


五、Java 修饰符

  • 像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized
  • 在后面的章节中我们会深入讨论 Java 修饰符。
  • Java 修饰符我们在后面会详细讲解

六、Java 变量

  • Java 中主要有如下几种类型的变量
  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)

七、Java 数组

  • 数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。

八、Java 枚举

  • Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug。
  • 例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
  • 注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。

九、Java 关键字

  • 下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。
类别关键字说明
访问控制private私有的
protected受保护的
public公共的
default默认的
类、方法和变量修饰符abstract声明抽象
class
extends扩充、继承
final最终值、不可改变的
implements实现(接口)
interface接口
native本地、原生方法(非Java实现)
new创建
static静态
strictfp严格浮点、精准浮点
synchronized线程、同步
transient短暂
volatile易失
程序控制语句break跳出循环
case定义一个值以供 switch 选择
continue继续
do运行
else否则
for循环
if如果
instanceof实例
return返回
switch根据值选择执行
while循环
错误处理assert断言表达式是否为真
catch捕捉异常
finally有没有异常都执行
throw抛出一个异常对象
throws声明一个异常可能被抛出
try捕获异常
包相关import引入
package
基本类型boolean布尔型
byte字节型
char字符型
double双精度浮点
float单精度浮点
int整形
long长整型
short短整型
变量引用super父类、超类
this本类
void无返回值
保留关键字goto是关键字,但不能实用
const是关键字,但不能实用
- 这里给大家写一下上面这个表格的 HTML 嗷,因为我自己也是学了一下用 Markdown 写表格,如果大家也有需要的话可以简单看看
<table>
    <!-- 标题 -->
	<tr>
        <th>类别</th><th>关键字</th><th>说明</th>
    </tr>
    <!-- 访问控制 -->
    <tr>
        <td style="text-align:center" rowspan="4">访问控制</td>
        <td style="text-align:center">private</td>
        <td style="text-align:center">私有的</td>
	</tr>
    <tr>
        <td style="text-align:center">protected</td>
        <td style="text-align:center">受保护的</td>
    </tr>
    <tr>
        <td style="text-align:center">public</td>
        <td style="text-align:center">公共的</td>
    </tr>
    <tr>
        <td style="text-align:center">default</td>
        <td style="text-align:center">默认的</td>
    </tr>
    <!-- 类、方法和变量修饰符 -->
    <tr>
        <td style="text-align:center" rowspan="13">类、方法和变量修饰符</td>
        <td style="text-align:center">abstract</td>
        <td style="text-align:center">声明抽象</td>
	</tr>
    <tr>
        <td style="text-align:center">class</td>
        <td style="text-align:center"></td>
    </tr>
    <tr>
        <td style="text-align:center">extends</td>
        <td style="text-align:center">扩充、继承</td>
    </tr>
    <tr>
        <td style="text-align:center">final</td>
        <td style="text-align:center">最终值、不可改变的</td>
    </tr>
    <tr>
        <td style="text-align:center">implements</td>
        <td style="text-align:center">实现(接口)</td>
    </tr>
    <tr>
        <td style="text-align:center">interface</td>
        <td style="text-align:center">接口</td>
    </tr>
    <tr>
        <td style="text-align:center">native</td>
        <td style="text-align:center">本地、原生方法(非Java实现)</td>
    </tr>
    <tr>
        <td style="text-align:center">new</td>
        <td style="text-align:center">创建</td>
    </tr>
    <tr>
        <td style="text-align:center">static</td>
        <td style="text-align:center">静态</td>
    </tr>
    <tr>
        <td style="text-align:center">strictfp</td>
        <td style="text-align:center">严格浮点、精准浮点</td>
    </tr>
    <tr>
        <td style="text-align:center">synchronized</td>
        <td style="text-align:center">线程、同步</td>
    </tr>
    <tr>
        <td style="text-align:center">transient</td>
        <td style="text-align:center">短暂</td>
    </tr>
    <tr>
        <td style="text-align:center">volatile</td>
        <td style="text-align:center">易失</td>
    </tr>
    <!-- 程序控制语句 -->
    <tr>
        <td style="text-align:center" rowspan="11">程序控制语句</td>
        <td style="text-align:center">break</td>
        <td style="text-align:center">跳出循环</td>
	</tr>
    <tr>
        <td style="text-align:center">case</td>
        <td style="text-align:center">定义一个值以供 switch 选择</td>
    </tr>
    <tr>
        <td style="text-align:center">continue</td>
        <td style="text-align:center">继续</td>
    </tr>
    <tr>
        <td style="text-align:center">do</td>
        <td style="text-align:center">运行</td>
    </tr>
    <tr>
        <td style="text-align:center">else</td>
        <td style="text-align:center">否则</td>
    </tr>
    <tr>
        <td style="text-align:center">for</td>
        <td style="text-align:center">循环</td>
    </tr>
    <tr>
        <td style="text-align:center">if</td>
        <td style="text-align:center">如果</td>
    </tr>
    <tr>
        <td style="text-align:center">instanceof</td>
        <td style="text-align:center">实例</td>
    </tr>
    <tr>
        <td style="text-align:center">return</td>
        <td style="text-align:center">返回</td>
    </tr>
    <tr>
        <td style="text-align:center">switch</td>
        <td style="text-align:center">根据值选择执行</td>
    </tr>
    <tr>
        <td style="text-align:center">while</td>
        <td style="text-align:center">循环</td>
    </tr>
    <!-- 错误处理 -->
    <tr>
        <td style="text-align:center" rowspan="6">错误处理</td>
        <td style="text-align:center">assert</td>
        <td style="text-align:center">断言表达式是否为真</td>
	</tr>
    <tr>
        <td style="text-align:center">catch</td>
        <td style="text-align:center">捕捉异常</td>
    </tr>
    <tr>
        <td style="text-align:center">finally</td>
        <td style="text-align:center">有没有异常都执行</td>
    </tr>
    <tr>
        <td style="text-align:center">throw</td>
        <td style="text-align:center">抛出一个异常对象</td>
    </tr>
    <tr>
        <td style="text-align:center">throws</td>
        <td style="text-align:center">声明一个异常可能被抛出</td>
    </tr>
    <tr>
        <td style="text-align:center">try</td>
        <td style="text-align:center">捕获异常</td>
    </tr>
    <!-- 包相关 -->
    <tr>
        <td style="text-align:center" rowspan="2">包相关</td>
        <td style="text-align:center">import</td>
        <td style="text-align:center">引入</td>
	</tr>
    <tr>
        <td style="text-align:center">package</td>
        <td style="text-align:center"></td>
    </tr>
    <!-- 基本类型 -->
    <tr>
        <td style="text-align:center" rowspan="8">基本类型</td>
        <td style="text-align:center">boolean</td>
        <td style="text-align:center">布尔型</td>
	</tr>
    <tr>
        <td style="text-align:center">byte</td>
        <td style="text-align:center">字节型</td>
    </tr>
    <tr>
        <td style="text-align:center">char</td>
        <td style="text-align:center">字符型</td>
    </tr>
    <tr>
        <td style="text-align:center">double</td>
        <td style="text-align:center">双精度浮点</td>
    </tr>
    <tr>
        <td style="text-align:center">float</td>
        <td style="text-align:center">单精度浮点</td>
    </tr>
    <tr>
        <td style="text-align:center">int</td>
        <td style="text-align:center">整形</td>
    </tr>
    <tr>
        <td style="text-align:center">long</td>
        <td style="text-align:center">长整型</td>
    </tr>
    <tr>
        <td style="text-align:center">short</td>
        <td style="text-align:center">短整型</td>
    </tr>
    <!-- 变量引用 -->
    <tr>
        <td style="text-align:center" rowspan="3">变量引用</td>
        <td style="text-align:center">super</td>
        <td style="text-align:center">父类、超类</td>
	</tr>
    <tr>
        <td style="text-align:center">this</td>
        <td style="text-align:center">本类</td>
    </tr>
    <tr>
        <td style="text-align:center">void</td>
        <td style="text-align:center">无返回值</td>
    </tr>
    <!-- 保留关键字 -->
    <tr>
        <td style="text-align:center" rowspan="2">保留关键字</td>
        <td style="text-align:center">goto</td>
        <td style="text-align:center">是关键字,但不能实用</td>
	</tr>
    <tr>
        <td style="text-align:center">const</td>
        <td style="text-align:center">是关键字,但不能实用</td>
    </tr>
</table>
  • 注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。

十、Java 注释

  • 类似于 C/C++、Java 也支持单行以及多行注释。
  • 注释中的字符将被 Java 编译器忽略。

十一、Java 空行

  • 空白行或者有注释的行,Java 编译器都会忽略掉。

十二、继承

  • 在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。
  • 利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。

十三、接口

  • 在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
  • 接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

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

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

相关文章

MySQL基础练习题49-低质量的问题

目录 题目 准备数据 分析数据 总结 题目 找出 低质量 问题的 ID 集合。如果一个力扣问题的喜欢率&#xff08;喜欢数除以总投票数&#xff09;严格低于 60% &#xff0c;则该问题为低质量问题。 按 problem_id 升序排列返回结果表。 准备数据 Create table If Not Exis…

深度学习基础—卷积神经网络示例

1.卷积神经网络的结构 在之前的博客《深度学习—简单的卷积神经网络》&#xff0c;仅由卷积层构成网络的全部&#xff0c;这还不是标准的网络结构&#xff0c;本文将继续介绍标准的卷积神经网络结构有哪些&#xff1f; 深度学习基础—简单的卷积神经网络https://blog.csdn.net…

STM32-按键控制LED 光敏传感器控制蜂鸣器(江协笔记)

1、按键 2、常见传感器模块 R1 定值电阻 N1 传感器电阻。对于光敏传感器来说&#xff0c;相当于光敏电阻&#xff1b;...... C(滤波电容) 给中间的电压输出进行滤波&#xff0c;用于滤除一些干扰&#xff0c;保证输出电压波形的平滑&#xff08;保持电路稳定&#xff09; …

Pikachu-暴力破解-验证码绕过(on client)

访问页面&#xff0c; 从burpsuite 上看到返回的源代码&#xff1b; 验证码生成时通过 createCode 方法生成&#xff0c;在前端页面生成&#xff1b; 同时也是在前端做的校验&#xff1b; 直接验证&#xff1b;F12 -- 网络&#xff0c;随便输入个账号、密码、验证码&#xff0…

多维度柱状图绘制

图形结果 绘制过程 数据如下 调整柱子宽度 Z轴设置 、 配色表

开源链动2+1模式AI智能名片S2B2C商城小程序源码:流量运营中的价值创造与用户影响

摘要&#xff1a;本文深入探讨在开源链动21模式AI智能名片S2B2C商城小程序源码的背景下&#xff0c;流量的激活、信任建立、圈层沉淀以及裂变等流量运营现象。分析流量运营成本与用户消费意识的关系&#xff0c;强调内容在赋予流量价值以影响用户感知和消费判断方面的重要性。 …

基于yolov8深度学习的120种犬类检测与识别系统python源码+onnx模型+评估指标曲线+精美GUI界面目标检测狗类检测犬类识别系统

【算法介绍】 基于YOLOv8深度学习的120种犬类检测与识别系统是一款功能强大的工具&#xff0c;该系统利用YOLOv8深度学习框架&#xff0c;通过21583张图片的训练&#xff0c;实现了对120种犬类的精准检测与识别。 该系统基于Python与PyQt5开发&#xff0c;具有简洁的UI界面&a…

当AI成为作家,人工智能在写作领域的崛起

AI写作技术的应用正在多个领域展现出其强大的潜力和价值&#xff0c;它不仅极大地提升了内容创作的效率&#xff0c;还为创作者提供了一个全新的创作伙伴。 随着技术的进步&#xff0c;AI写作工具越来越能够理解复杂的语境和用户需求&#xff0c;帮助创作者生成高质量的内容。…

DpCas 镜头场景分割 Scene Segmentation

开源项目 - DpCas 镜头场景分割 Scene Segmentation 开源项目地址&#xff1a;https://gitcode.net/EricLee/dpcas 示例&#xff1a;

写出第一个php程序

一、打开vscode&#xff0c;下载chinese插件、php debug、phpintelephense 二、下载完上方图片插件后&#xff0c;创建一个PHP文件&#xff0c;1.php 三、执行命令&#xff0c;成功输出

pytorch搭建神经网络(手搓方法)

假如我们有一个数据集形状为(348,14)。即有348个记录&#xff0c;每个记录有14个特征值。 我们想要搭建一个如下的神经网络&#xff1a; import torch import numpy as np# 创建数据集: 每个样本有14个特征 x_train np.array([[0.5, -1.2, 0.3, 0.8, 1.0, -0.5, 2.3, 1.2, -0…

在Ubuntu 20.04中安装CARLA

0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器&#xff0c;其支持自动驾驶系统全管线的开发、训练和验证&#xff08;Development, Training, and Validation of autonomous driving systems&#xff09;。Carla提供了丰富的数字资产&#xff0c;例如城市布局…

前端编程艺术(2)----CSS

目录 1.CSS 2.CSS引入 3.选择器 1.标签选择器 2.类选择器 3.id选择器 4.属性选择器 5.后代选择器 5.直接子元素选择器 6.伪类选择器 链接相关 动态伪类 结构化伪类 否定伪类 其他伪类 UI元素状态伪类 4.字体 1.font-family 2.font-size 3.font-style 4.fo…

Linux查找隐藏病毒进程

工具连接 下载工具不要分&#xff0c;随便下 下载后修改工具名&#xff1a;如修改为lsof、ps、top等并为工具加入执行权限 2、 直接执行即可&#xff0c;与正常命令用法一致&#xff08;截图如下&#xff09;

足球预测推荐软件:百万数据阐述百年足球历史-大数据模型量化球员成就值

我开始创建这个模型是从梅西22世界杯夺冠第二天开始准备的&#xff0c;当时互联网上充斥了太多了个人情感的输出&#xff0c;有的人借题对C罗冷嘲热讽&#xff0c;有的人质疑梅西的阿根廷被安排夺冠不配超越马拉多纳做GOAT。作为一个从2002年开始看球的球迷&#xff0c;说实话有…

linux自用小手册

一、GDB常用命令 想用gdb调试C或C程序&#xff0c;编译时需要加-g选项&#xff0c;编译出的文件为debug状态&#xff08;如果不加则是release状态&#xff09;&#xff0c;且不可以加-O选项进行优化。 命令简写解释set args 设置程序传递的参数 例&#xff1a;./demo -v value…

【MySQL报错】---Data truncated for column ‘age‘ at row...

目录 一、前言二、问题分析三、解决办法 一、前言 欢迎大家来到权权的博客~欢迎大家对我的博客进行指导&#xff0c;有什么不对的地方&#xff0c;我会及时改进哦~ 博客主页链接点这里–>&#xff1a;权权的博客主页链接 二、问题分析 问题一修改表结构 XXX 为 not n…

指针 (5)

目录 1. 字符指针变量 2. 数组指针变量 3. ⼆维数组传参的本质 4. 函数指针变量 5.typedef 关键字 6 函数指针数组 7.转移表 计算器的⼀般实现 1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* #include <stdio.h> int main() {char* ch …

ARM assembly: Lesson 10

今天&#xff0c;我们来看一下基于ARM汇编&#xff0c;如何实现函数的调用。 基础知识 在ARM汇编中&#xff0c;函数的前四个参数存放于 R0~R3寄存器中, 剩余的参数存放于栈中&#xff0c;返回值存放于r0。在栈中存放数值&#xff0c;可以避免在调用过程中&#xff0c;数据的…

记一次炉石传说记牌器 Crash 排查经历

大家好这里是 Geek技术前线。最近在打炉石过程中遇到了HSTracker记牌器的一个闪退问题&#xff0c;尝试性排查了下原因。这里简单记录一下 最近炉石国服回归&#xff1b;由于设备限制&#xff0c;我基本只会在 Mac 上打炉石。并且由于主要打竞技场&#xff0c;所以记牌器是必不…