变量
1. 变量的三个元素
变量的三个元素:变量类型、变量名和变量值。
2. 变量声明
格式:数据类型 变量名;
int n;
long count;
3. 变量赋值
格式:数据类型 变量名=变量值;使用“ =”运算符进行赋值“= ” 叫作赋值运算符,将运算符右边的值赋给左边的变量。
int n;
n = 3;
int n = 3;
4. 变量类型
Java 中主要有如下几种类型的变量 局部变量 类变量(静态变量) 成员变量(非静态变量)
常量
使用 final 关键字来定义一个常量1//final dataType variableName = value2public static final double PI = 3.14;
//final dataType variableName = value2public static final double PI = 3.14;
注意:在定义常量时就需要对该常量进行初始化。final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。为了与变量区别,常量取名一般都用大写字符。当常量被设定后,一般情况下不允许再进行修改。
1. 常量类型
三种类型: 静态常量 成员常量 局部常量
1public class HelloWorld {
public static final double PI = 3.14;
final int y = 10;
public static void main(String[] args) {
final double x = 3.3;9 }
}
方法
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。方法是Java程序的核心组成部分之一,它用于封装可重用的代码块,并通过方法名进行调用。下面是关于Java中方法的一些重要概念和使用方法。
1. 方法的声明:
- 方法由访问修饰符、返回类型、方法名和参数列表组成。
- 访问修饰符控制方法的访问级别,可以是public、protected、private或默认的(没有指定访问修饰符)。
- 返回类型指定方法返回值的类型,可以是基本数据类型、引用类型或void(表示没有返回值)。
- 方法名是用于调用方法的标识符,要符合标识符的命名规则。
- 参数列表指定方法接收的输入参数,可以有零个或多个,多个参数之间用逗号分隔。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
2. 方法的调用:
- 在代码中调用方法时,需要使用方法名和适当的参数。
- 方法的调用可通过对象名、类名或super关键字进行。
- 若方法被声明为静态方法,则可以使用类名直接调用;否则需要通过对象名调用。
3. 方法的重载:
- Java支持方法的重载,即在同一个类中可以定义多个同名的方法,但它们的参数列表或返回类型不同。
- 重载的方法根据不同的参数列表来识别和区分。
4. 方法的返回值:
- 方法可以有返回值,也可以没有返回值。
- 有返回值的方法需使用与返回类型相匹配的return语句返回一个值。
- 若方法声明为void类型,则表示没有返回值,在方法体内可以省略return语句。
一些方法的示例:
// 有返回值的方法示例
public class Calculator {
public static int add(int num1, int num2) {
return num1 + num2;
}
public static double divide(double numerator, double denominator) {
return numerator / denominator;
}
}
// 无返回值的方法示例
public class Printer {
public void printMessage(String message) {
System.out.println(message);
}
public void printNumbers(int n) {
for (int i = 1; i <= n; i++) {
System.out.print(i + " ");
}
}
}
在上面的示例中,Calculator类包含两个静态方法:add方法和divide方法,分别用于进行整数相加和浮点数相除的运算。Printer类包含两个实例方法:printMessage方法和printNumbers方法,分别用于打印字符串和连续输出一定范围的数字。
衍生问题
a = a + b 与 a += b 的区别
在Java中,a = a + b和a += b这两种语法看起来很相似,但它们有一些细微的差别。
-
a = a + b:- 这是一个简单的赋值语句,将
a + b的结果赋值给变量a。 - 在执行这个语句之前,会先计算
a + b的结果,然后将结果赋值给a。 - 例如,如果a是一个整数变量,b是一个整数常量,那么
a = a + b相当于将a与b相加的结果赋值给a。
- 这是一个简单的赋值语句,将
-
a += b:- 这是一个复合赋值运算符,结合了加法运算和赋值运算。
- 它相当于
a = a + b,但是更加简洁和方便。 - 不同的是,
a += b的计算结果直接赋值给a,不需要进行额外的赋值操作。 - 当使用复合赋值运算符时,Java会自动进行类型转换,确保结果符合变量的类型。
区别总结:
- 语法形式上的区别:一种是简单赋值语句
a = a + b,另一种是复合赋值运算符a += b。 - 执行顺序上的区别:
a = a + b先计算a + b的结果,然后再执行赋值操作;a += b一次性完成加法和赋值操作。 - 类型转换上的区别:
a += b会自动进行类型转换,确保结果符合变量的类型。
需要注意:
- 对于基本数据类型,
a = a + b和a += b没有本质差别,两种方式可以互换使用。 - 对于对象引用类型,复合赋值运算符可能会有特殊的行为,需要根据具体情况来判断是否适用。
综上所述,a = a + b和a += b在大多数情况下是等效的,但在某些特殊的场景中,如对象引用类型,可能会有微小差别。
类的修饰符能不能不写?
在Java中,类的修饰符是可选的,也就是说可以选择不写类的修饰符。如果不写修饰符,则类会使用默认的访问修饰符,也称为默认修饰符或包级访问修饰符。
默认的访问修饰符允许类在同一个包内被访问。这意味着,如果一个类没有显式地指定访问修饰符,那么它只能在相同的包中被其他类访问,而在不同的包中是无法访问的。
当然,你也可以显式地指定类的修饰符,例如使用"public"使得类对于所有类可见,或是使用"private"使得类只能在同一个类中访问。具体的类修饰符包括以下几种:
- public:对所有类可见,无访问限制。
- protected:对于同一个包中的类和所有子类可见。
- private:只对同一个类中可见,其他类无法访问。
- 默认(包级访问修饰符):对同一个包中的类可见。
在选择类的修饰符时,需要根据实际需求来进行决策。如果希望类能够被其他类广泛访问和使用,可以选择使用"public"修饰符。如果希望限制类的访问范围,可以使用较为限制性的修饰符,如"protected"或"private"。否则,使用默认的访问修饰符即可。
需要注意的是,在一个Java源文件中,最多只能有一个使用public修饰的类,并且该类的类名要与文件名相同。其他非public的类可以有多个,并且类名与文件名可以不一致。