程序中须要处理数据,Java 中的变量是用来装载数据。变量相似一个盒子,咱们经过这个盒子,就能够操做盒子里面的数据。java
Java 中每一个变量都有名称和数值。名称不会变化,可是里面的数值能够变化,像一个盒子里面能够去装不一样的东西。shell
Java 变量中的值不必定老是数值,还能够是文本内容或者字母,还能够是其余类型的数据。编程
Java 中变量定义须要显示的指定存放数据类型,一旦指定,只能存储指定类型数据。当建立变量的时候,须要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。ide
Java 中变量是这样定义的:函数
data_type variable_name = value;
好比用变量 passengers 记录公交车每一个站乘客的数量。编码
int passengers;//声明一个名字为 passengers的变量,指定存放数据类型为整数 passengers = 0;//为 passengers 变量初始化一个整数值 0 //也能够声明变量时,就初始化值。 int passenger1 = 10;//定义变量paasenger1,并初始化值为整数10
注意:这里的 “=” 不是数学里面等于的意思,是把右边的数据,赋值给左边变量。
定义变量后,能够对变量更新为不一样的值。变量只保留最后一次更新的值。spa
Java中变量的名字命名须要遵循一些规则:code
1)变量名称中不能够有空格。好比 int pas senger = 0;
是不合法的, 由于passengers中存在空格对象
2)变量名称能够以特殊字符开头,例如$和像和_ 像int $num = 10;
是有效的定义。blog
3)根据Java编码标准,变量名应以小写字母开头;对于具备多个单词的冗长变量名称,能够这样作:int smallNumber; int bigNumber; (用大写字母开始第二个单词,也称为驼峰命名规则)。
4)Java 中的变量名称区分大小写,也就是 int Num;
和 int num;
定义了两个不一样的变量。
Java 变量中的类型分为三种:
1)静态变量(或者类变量)
2)实例变量
3)局部变量
静态变量也被称为类变量,由于它们与类相关联,而且对于类的全部实例对象都是通用的。例如,A类中定义了一个静态变量 a,对于从 A 类的建立的任何实例对象都可以访问静态变量 a。若是经过一个实例对象改变了静态变量 a 的值,那么静态变量的改变会应用到其余全部的对象。实例说明一下:
public class StaticVariableExample { //定义一个静态变量 public static String myClassVar = "class or static variable"; public static void main(String[] args) { // 建立三个实例对象 StaticVariableExample obj1 = new StaticVariableExample(); StaticVariableExample obj2 = new StaticVariableExample(); StaticVariableExample obj3 = new StaticVariableExample(); //三个对象均可以访问 myClassVar ,输出 “class or static variable” System.out.println(obj1.myClassVar); System.out.println(obj2.myClassVar); System.out.println(obj3.myClassVar); //经过实例对象 obj2 改变静态变量 myClassVar的值 obj2.myClassVar = "Change value for myClassVar"; // 三个都会输出:"Change value for myClassVar" System.out.println(obj1.myClassVar); System.out.println(obj2.myClassVar); System.out.println(obj3.myClassVar); } }
控制台输出:
class or static variable class or static variable class or static variable Change value for myClassVar Change value for myClassVar Change value for myClassVar
静态变量能够理解为属于类(Class)模板的变量,不属于实例对象,可是对象能够访问。由于属于类模板,全部也能够直接访问静态变量,例如在上面实例的 main
方法中能够直接这样打印输出:
System.out.println(myClassVar);
注意:只有静态变量能够这样直接访问。局部变量和实例变量不能够直接访问
类的每一个实例(对象)都有本身的实例变量副本。与静态变量不一样,实例变量具备本身独立的实例变量副本。在下面的程序中使用obj2对象更改了实例变量值,而且当使用全部三个对象显示变量时,只有obj2值被更改,其余值保持不变。这代表三个对象都有本身的副本实例变量。
实例变量示例:
public class InstanceVariableExample { //定义实例变量 String myInstanceVar = "instance variable"; public static void main(String[] args) { //建立三个实例对象 InstanceVariableExample obj1 = new InstanceVariableExample(); InstanceVariableExample obj2 = new InstanceVariableExample(); InstanceVariableExample obj3 = new InstanceVariableExample(); //每一个对象拥有实例变量副本,都输出:“instance variable” System.out.println(obj1.myInstanceVar); System.out.println(obj2.myInstanceVar); System.out.println(obj3.myInstanceVar); //obj2改变的只是本身的实例变量副本,不改变其余实例对象的实例变量 obj2.myInstanceVar = "Change Text"; System.out.println(obj1.myInstanceVar); System.out.println(obj2.myInstanceVar); System.out.println(obj3.myInstanceVar); } }
控制台输出:
instance variable instance variable instance variable instance variable Change Text instance variable
能够理解为实例对象拥有各自的实例变量,类只是定义了一个实例变量的模板。产生新的实例对象时,会从类模板拷贝实例变量给实例对象。
什么是局部变量,顾名思义,该类型变量只在一个局部范围内有效,超出范围无效。外部就没法访问该变量。
局部变量是定义在一个类的函数里面,其做用范围被限制在该函数内部,外部没法访问该变量。
[认识 Java]() 文章中介绍过函数的概念
下面,我用一个例子来讲明:
public class LocalVaribleExample { //定义一个实例变量 myVar public String myVar = "instance variable"; public void myMethod() { // 定义一个局部变量,只做用在该方法内部 String myVar = "Inside Method"; String myVar2 = "Inside Method 2" System.out.println(myVar); } public static void main(String[] args) { //建立一个实例对象 LocalVaribleExample obj = new LocalVaribleExample(); System.out.println("调用函数"); obj.myMethod(); System.out.println(obj.myVar); //System.out.println(obj.myVar2);//会编译出错,外部没法访问方法内局部变量 } }
控制台输出:
调用函数 Inside Method instance variable
说明:局部变量的做用范围只在方法内部
若是不声明实例变量:
public String myVar = "instance variable";
那么,main
方法中的直接调用:
System.out.println(obj.myVar);
会抛出编译错误。由于没法在myMethod
外更改和访问myVar
局部变量。
ASCII是用于将英文字符表示为数字的代码,英文字母的每一个字母都被分配了从0到127的数字。例如,大写字母P的ASCII代码是80。
在Java编程中,咱们有两种方法来查找字符的ASCII值
1)经过给int变量分配一个字符
2)经过类型转换字符值为int
public class Demo { public static void main(String[] args) { char ch = 'P'; int asciiCode = ch; // 强制转换char类型为int类型 int asciiValue = (int)ch; System.out.println("ASCII value of "+ch+" is: " + asciiCode); System.out.println("ASCII value of "+ch+" is: " + asciiValue); } }
控制台输出:
ASCII value of P is: 80 ASCII value of P is: 80
1)控制台输入两个整数,并打印结果:
import java.util.Scanner; public class Demo { public static void main(String[] args) { /* 读取用户的键盘输入的扫描器对象 */ Scanner scan = new Scanner(System.in); System.out.print("Enter first number: "); // 读取键盘输入的数字,并赋值给变量num1 int num1 = scan.nextInt(); System.out.print("Enter second number: "); int num2 = scan.nextInt(); // 使用后关闭扫描器 scan.close(); // 计算两个整数相乘的结果 int product = num1*num2; //控制台打印乘法结果 System.out.println("Output: "+product); } }
控制台:
Enter first number: 20 Enter second number: 6 Output: 120
2)两个小数相乘:
这里咱们使用数据类型double来表示数字,能够输入整数以及浮点数。
import java.util.Scanner; public class Demo { public static void main(String[] args) { //读取用户的键盘输入的扫描器对象 Scanner scan = new Scanner(System.in); System.out.print("Enter first number: "); // 读取键盘输入的数值,并赋值给变量num1 double num1 = scan.nextDouble(); System.out.print("Enter second number: "); double num2 = scan.nextDouble(); // 使用后关闭扫描器 scan.close(); // 计算两个数值相乘的结果 double product = num1*num2; //控制台打印乘法结果 System.out.println("Output: "+product); } }
控制台:
Enter first number: 1.5 Enter second number: 2.5 Output: 3.75
1)用户输入宽和高
import java.util.Scanner; class AreaTriangleDemo { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.println("Enter the width of the Triangle:"); double base = scanner.nextDouble(); System.out.println("Enter the height of the Triangle:"); double height = scanner.nextDouble(); //Area = (width*height)/2 double area = (base* height)/2; System.out.println("Area of Triangle is: " + area); } }
控制台输出:
Enter the width of the Triangle: 2 Enter the height of the Triangle: 2 Area of Triangle is: 2.0
2)程序中定义宽和高
class AreaTriangleDemo2 { public static void main(String args[]) { double base = 20.0; double height = 110.5; double area = (base* height)/2; System.out.println("Area of Triangle is: " + area); } }
控制台输出:
Area of Triangle is: 1105.0