(参考网易云课堂网课)
1.常量
1.1声明常量
(顺便分享一个很实用快捷键CTRL+D,可以删除JAVA当前行的内容 )
(还有CTRL+M 也很好用)
语法: final 数据类型 常量名称 = 值
规范:常量名称通常使用大写字母,比如PI、YEAR等等
规则:常量名称符合标识符的要求,只能用字母、数字、_、$组成,不能以数字开头、不能使用关键词
public class TestFinal4_1 {
static final int YEAR = 365; //定义一个常量(在main外或者里面都可以)
//main方法是静态的 所以上面定义也要加static
public static void main(String[] args) {
System.out.println("一年有"+YEAR+"天");
System.out.println("两年有"+YEAR*2+"天");
}
}
如果把YEAR的定义放在main里面就可以不加
public class TestFinal4_1 {
public static void main(String[] args) {
final int YEAR = 365;
System.out.println("一年有"+YEAR+"天");
}
}
2.变量
2.1声明变量
变量的定义赋值与使用不太多叙述;
public static void main(String[] args) {
int num = 10;
System.out.println("num="+num);
double money = 1000000;
System.out.println("money="+money);
num = 100;
System.out.println("num="+num);
char ch = 'z';
System.out.println("ch="+ch);
}
2.2变量的作用范围
按作用范围分类:成员变量和局部变量
1.成员变量
在类体中定义的变量,作用范围为整个类,这个类中都可以访问到定义的这个变量
public class Test4_2 {
static int k = 1; //即为成员变量---在类体中定义
public static void main(String[] args) {
}
}
2.局部变量
在一个函数(方法)或代码块中定义的变量
特点:局部变量在方法或代码块被执行的时候创建,在结束时被销毁
下面给一个简单的例子
public class Test4_2 {
public static void main(String[] args) {
int a = 1;
//以下就是一个块
{
int b = 2;
System.out.println("a="+a);
System.out.println("b="+b);
}
int b = 3; //因为在上面执行结束后 代码块就被销毁了
System.out.println("a="+a);
System.out.println("b+"+b);
}
}
成员变量可以与局部变量重名
其调用服从“就近原则”
下面给出一个例子
如果不删除int var = 2,结果会显示 2,删除后则为1;
public class Test4_2 {
static int var = 1;
public static void main(String[] args) {
int var = 2;
System.out.println("the value of var = "+var);
}
}
例二:
public class Test4_2 {
static int var = 1;
public static void main(String[] args) {
int var = 2;
System.out.println("the value of var = "+var);
pt();
}
public static void pt() {
System.out.println("the value of var = "+var);
}
}
3.拓展
1.Java中作用范围禁止嵌套,而在c/c++中则可以,在下面分别给出在java与c中的例子;
错误!!!或报错
public static void main(String[] args) {
int a = 1;
{
int a =2
System.out.println("a="+a);
}
}
在C语言中 正确!!!
#include<stdio.h>
int main()
{
int a = 1;
{
int a=2;
printf("%d",a);
}
}
2.Java中类与方法中变量的作用域可以嵌套:也就是上面说的就近原则那个,这里不再细讲;
4.实战练习
实现一个从1~100累加的和(很简单 因为学过C了 所以感觉这些很多东西都差不多)
public class Test4_3 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1;i<=100;i++)
{
sum += i;
}
System.out.println("sum = "+sum);
}
}