动力节点杜老师最新Java零基础视频笔记-第三章 Java基础语法

标识符(掌握)

什么是标识符

在Java中,标识符是用来给变量、方法、类和包等命名的字符序列。标识符由字母、数字、下划线和美元符号组成,但是第一个字符必须是字母、下划线或美元符号。标识符不能包含空格或其他特殊字符,也不能与Java关键字相同。标识符的长度没有限制,但是建议使用有意义的、简洁的标识符,以提高代码的可读性和可维护性

标识符可以标识什么

Java中的标识符可以标识以下内容:

  1. 变量(Variable)
  2. 方法(Method)
  3. 类(Class)
  4. 接口(Interface)
  5. 枚举(Enum)
  6. 注解(Annotation)
  7. 包(Package)
  8. 类型参数(Type Parameter)
  9. 类型名称(Type Name)
  10. 常量(Constant)

以上是Java中常见的标识符,其中变量、方法、类、接口、枚举、注解和常量都是Java中的关键元素,而包和类型参数则是Java中的辅助元素。类型名称则是指Java中的基本类型和引用类型的名称,例如int、String、Object等。

标识符命名规则

Java中合法的标识符需要满足以下要求:

  1. 标识符可以由字母、数字、下划线(_)和美元符号($)组成,不能含有其他符号。(java支持全球所有语言,所以这里的 字母 指的是任何一个国家的语言都可以)
  2. 标识符不能以数字开头。
  3. 标识符不能是Java中的关键字,如public、class、void等。
  4. 标识符是区分大小写的,即Foo和foo是两个不同的标识符。
  5. 标识符的长度没有限制,但是Java建议使用有意义的、简短的标识符。

例如,以下是合法的标识符:

  1. name
  2. _name
  3. $name
  4. name123
  5. Name
  6. MyClassName

而以下是不合法的标识符:

  1. 123name(以数字开头)
  2. public(关键字)
  3. my-name(中间包含横线)
  4. MyClassName!(包含非法字符)

标识符命名规范

  1. 见名知意
  2. 驼峰式命名方式
  3. 类名、接口名、枚举、注解:首字母大写,后面每个单词首字母大写。(StudentService,UserService)
  4. 变量名和方法名:首字母小写,后面每个单词首字母大写。(doSome,doOther)
  5. 常量名:全部大写,每个单词用下划线连接。(LOGIN_SUCCESS,SYSTEM_ERROR)
  6. 包名:全部小写

判断标识符是否合法

判断以下标识符中哪些是合法的,哪些是不合法的

  1. myVariable
  2. 2name
  3. first.name
  4. studentName
  5. public
  6. public1
  7. address#
  8. MAX_SIZE
  9. id#
  10. _id
  11. @age
  12. $money
  13. 你好

关键字(理解)

什么是关键字

Java关键字是Java编程语言中预定义的具有特殊含义的保留字,这些保留字不能被用作标识符或变量名,而是在语法中有特定的用法和限制。Java关键字的作用是控制程序的逻辑和结构,这些关键字通常用于声明变量、定义类、控制程序流程、实现面向对象编程等。

Java关键字的种类有很多,包括基本数据类型关键字(如int、double、boolean等)、控制流程关键字(如if、for、while等)、访问权限关键字(如public、private、protected等)、类和对象关键字(如class、new、extends、super等)、异常处理关键字(如try、catch、finally等)等。不同的关键字有不同的作用和用法,程序员需要根据具体的需求选择合适的关键字来编写代码。

Java关键字的使用规则也有一些限制,例如关键字不能作为变量名、方法名等标识符的名称,也不能在不同的上下文中使用不同的含义。在编写Java代码时,需要遵守Java关键字的使用规则,以保证程序的正确性和可读性。

java中有哪些关键字

java中所有的关键字都是小写的。包括:
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while

字面量(理解)

什么是字面量

Java中,字面量指的是在程序中直接使用的数据,字面量是Java中最基本的表达式,不需要进行计算或转换,直接使用即可。

Java中都有哪些字面量

  • 整数型:10、-5、0、100
  • 浮点型:3.14、-0.5、1.0
  • 布尔型:true、false
  • 字符型:‘a’、‘b’、‘c’、‘1’、‘2’、‘国’
  • 字符串型:“Hello”、“World”、“Java”、“你好呀”

加号运算符

  1. 加号“+”在java中是一种运算符,有两个作用:
    1. 求和
    2. 字符串拼接:+的任意一边只要是字符串类型,做字符串拼接操作,拼接之后的结果还是一个字符串。其它情况一律是求和操作。
  2. 判断以下程序的输出结果
System.out.println(5 + 6);
System.out.println("5" + "6");
System.out.println("5" + 6 + 7);
System.out.println("5" + (6 + 7));
System.out.println(5 + 6 + "7");
System.out.println(5 + "6" + 7);
System.out.println(5 + (6 + "7")); // 添加小括号优先级较高

变量(掌握)

什么是变量


变量可以看做是一个盒子,这个盒子可以存储数据。本质上,变量是内存当中的一块空间,这块空间有三要素(变量的三要素):

  • 要素一:数据类型(决定了空间大小)。例如有一种数据类型叫做整数型:int
  • 要素二:名字(只要是合法的标识符就行)。例如:age(年龄)
  • 要素三:值(盒子中具体存储的数据)。例如:20

例如以下代码则表示声明了一个整数类型的变量age,值为20

int age = 20;

以及以下代码则表示声明了一个字符串类型的变量name,值为"jack"

String name = "jack";

数据类型后面小节会详细讲解。目前只需要知道int代表整数类型,String代表字符串类型即可。
另外,变量的“变”体现在哪里呢?体现在变量这个盒子中的数据是可以改变的。例如,通过“=”赋值运算符,可以改变盒子中存储的数据:

age = 30;

这个操作用专业术语表达叫做:给变量重新赋值。
重新赋值时也是有要求的,值的类型要和变量的类型一致,不然就会报错,例如:

age = "30";

报错信息如下:

编译器找到等号右边的数据,发现是String类型,然后发现age这个盒子只能存储int类型,类型不匹配,表示这种int盒子不能存放String类型的数据。

变量的作用

有这样一个需求:请用你当前所学知识,分别计算100和111、222、666、888、999的和,你该怎么编写代码?

System.out.println(100 + 111);
System.out.println(100 + 222);
System.out.println(100 + 666);
System.out.println(100 + 888);
System.out.println(100 + 999);

现在需求变化了,要求计算234和111、222、666、888、999的和,你需要将以上代码中所有的100全部进行修改:

System.out.println(234 + 111);
System.out.println(234 + 222);
System.out.println(234 + 666);
System.out.println(234 + 888);
System.out.println(234 + 999);

修改了5个位置,如果求和的数据更多,那么修改的位置也会更多,显然:可维护性太差。怎么解决?使用变量可以解决。

int num = 100;
System.out.println(num + 111);
System.out.println(num + 222);
System.out.println(num + 666);
System.out.println(num + 888);
System.out.println(num + 999);

如果需求变化了,只需要修改一个位置即可:

int num = 234;
System.out.println(num + 111);
System.out.println(num + 222);
System.out.println(num + 666);
System.out.println(num + 888);
System.out.println(num + 999);

通过以上内容的学习,可以得知,变量的存在,可以让程序更加易维护

再比如,又有这样一个需求:现在有三个圆,半径分别是10cm,20cm,30cm,π取值3.14,请分别计算他们的面积,如果不使用变量,程序是这样的:

System.out.println(3.14 * 10 * 10); // 314
System.out.println(3.14 * 20 * 20); // 1256
System.out.println(3.14 * 30 * 30); // 2826

上面程序存在的最大问题就是:可读性太差。使用变量可以提高程序的可读性:

double π = 3.14;
int r1 = 10;
int r2 = 20;
int r3 = 30;
System.out.println(π * r1 * r1);
System.out.println(π * r2 * r2);
System.out.println(π * r3 * r3);

因此变量的出现可以提高程序的可读性。

变量的声明、赋值、访问

变量的声明

语法如下:

数据类型 变量名;

例如:

int age;
String name;
double π;

数据类型后面详细讲。
变量名只要是合法的标识符即可。规范中要求:变量名首字母小写,后面每个单词首字母大写。

变量的赋值

使用赋值运算符“=”完成赋值,例如:

age = 20;
name = "jack";
π = 3.14;

注意:等号运算符叫做赋值运算符,“=”右边表达式优先级高,先执行右边,将执行结果赋值给左边的变量。
变量中的“变”是因为变量赋值后可以重新赋值:

age = 30;
name = "lucy";

需要注意的是:变量虽然可以重新赋值,但在赋值的时候,值的数据类型一定要和变量的数据类型一致,不能这样:

age = "张三";

另外,变量的声明和赋值也是可以在一行代码中完成的,例如:在声明的时候直接赋值:

int num = 200;
变量的访问

变量的访问不外乎包括两种情况:

  • 读取
  • 修改

读取变量的值:

int age = 20;
System.out.println(age);

修改变量的值:

age = 30;

将变量的值读取出来,复制一份传递给另一个变量:

int num1 = 10;
int num2 = num1;
int num3 = num1 + num2;

变量的小细节

  1. 变量必须先声明,再赋值,才能访问。
int age;
System.out.println(age); // 报错,原因是变量age没有赋值
  1. 方法体当中的代码遵循自上而下的顺序依次逐行执行,变量先访问,再声明肯定是不行的。
System.out.println(num);
int num = 20;
  1. 一行代码上可以同时声明多个变量。
int a, b, c = 300; // 表示声明三个int类型变量,分别起名a b c,但是a和b没有赋值,c赋值300
  1. 在同一个作用域当中,变量名不能重名,可以重新赋值。
public static void main(String[] args){
   
    int a = 100;
    // 重新赋值没问题
    a = 200;
    a = 300;
    // 重复声明肯定不行
    int a = 900; // 报错
}

变量的作用域

什么是变量作用域

作用域就是变量的有效范围。变量的作用域是怎样的呢?用一句大白话就可以概括了:出了大括号就不认识了。

public class MyClass {
   
    static int e = 100;
    public static void main(String[] args){
   
        int i = 100;
        System.out.println(i);
        for(int k = 0; k < 10; i++){
   
            int f = 100;
        }
        // 这里是无法访问f变量的
        System.out.println(f);

        // 这里是可以访问e的
        System.out.println(e);
    }
    public static void m()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值