常量
常量:初始化后不能再改变值!不会变动的值。所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
用法:final 常量名=值;
【演示如下】
final double PI=3.14;
final String today="hello";
程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 “男”,在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。
变量
一、变量定义
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:
type varname=value
注意事项:
1.每个变量都有类型,类型可以是基本类型,也可以是引用类型。
2.变量名必须是合法的标识符。
3.变量声明是一条完整的语句,因此每一个声明都必须以分号结束
【演示如下】
int a, b, c; // 声明三个int型整数:a、 b、c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22; // 声明并初始化 z
String s = "runoob"; // 声明并初始化字符串 s
double pi = 3.14159; // 声明了双精度浮点型变量 pi
char x = 'x'; // 声明变量 x 的值是字符 'x'。
【编码规范】
虽然可以在一行声明多个变量,但是不提倡这个风格,逐一声明每一个变量可以提高程序可读性。
二、变量分类(作用域)
变量根据作用域可划分为三种:
1.类变量 (静态变量: static variable):独立于方法之外的变量,用 static 修饰。
2.实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。
3.局部变量(lacal variable):类的方法中的变量。
【演示如下】
public class HelloWorld{
static int allow=0; // 类变量
String str="Hello World!"; // 实例变量
public void method(){
int i =0; // 局部变量
}
}
三、静态变量
1.使用static定义。
2.从属于类,生命周期伴随类始终,从类加载到卸载。
3.如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)
【演示如下】
public class Employee {
//salary是静态的私有变量
private static double salary;
// DEPARTMENT是一个常量
public static final String DEPARTMENT = "开发人员";
public static void main(String[] args){
salary = 10000;
System.out.println(DEPARTMENT+"平均工资:"+salary);
}
}
四、实例变量
1.方法外部、类的内部定义的变量。
2.从属于对象,生命周期伴随对象始终。
3.如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)
【演示如下】
public class Test {
// 这个实例变量对子类可见
public String name;
// 私有变量,仅在该类可见
private double salary;
}
五、局部变量
1.方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。
2.在使用前必须先声明和初始化(赋初值)。
3.局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
【演示如下】
public static void main(String[] args) {
int i;
int j = i+5 ; //编译出错,变量i还未被初始化
System.out.println(j);
应修改为
public static void main(String[] args) {
int i=10;
int j = i+5 ;
System.out.println(j);
}
六、变量的命名规范
1.所有变量、方法、类名用英文等:见名知意
2.类成员变量:首字母小写和驼峰原则 : monthSalary
3.局部变量:首字母小写和驼峰原则
4.常量:大写字母和下划线:MAX_VALUE
5.类名:首字母大写和驼峰原则: Man, GoodMan
6. 方法名:首字母小写和驼峰原则: run(), runRun()
包机制
一、问题描述
存在这样一个问题:当定义了多个类的时候,可能会发生类名的重复问题。
解决方式:在java中采用包机制处理开发者定义的类名冲突问题。就好比我们平时的用电脑,一个文件夹下不能存在同名的文件,我们要是有这样的需求,但是又不想换名字,我们就可以考虑使用新建一个文件夹来存放!在我们的Java中也是这样的。
二、 包的作用
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。Java 使用包这种机制是为了防止命名冲突,访问控制,提供搜索和定位类、口、枚举和注释等。
包语句的语法格式为:package pkg1[.pkg2[.pkg3…]];
例如,一个Something.java 文件它的内容:
package net.java.util;
public class Something{
...
}
那么它的路径应该是 net/java/util/Something.java 这样保存的。 package(包) 的作用是把不同的java 程序分类保存,更方便的被其他 java 程序调用。
三、创建包
1.创建包的时候,你需要为这个包取一个合适的名字。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头。
2.包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。
3.如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包中。
一般利用公司域名倒置作为包名;
例子:www.baidu.com 包名:com.baidu.www
四、import关键字(导入包)
为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 “import” 语句可完成此功能。在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条。
语法格式如下:
import package1[.package2…].(classname|*);
(注意如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略。要是要用到其他包下的类,就必须要先导包!)
用 import 关键字引入,使用通配符 " * " , 导入io包下的所有类!
import java.io.*;
使用 import 关键字引入指定类:
import com.bj.Hello;
【注意】类文件中可以包含任意数量的 import 声明。import 声明必须在包声明之后,类声明之前。