Java中 变量、数据类型和运算符的运用

前言

       在Java阶段,基础的知识就是掌握好Java语言的简易规则,今天就先来介绍变量与数据类型及其运算符。

一.变量

“变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;

  1.1 Java中常用的四种变量

  1. 实例变量
  2. 类变量
  3. 局部变量
  4. 参数
public class Variable{

  static int allClicks=0; // 类变量

  String str="hello world"; // 实例变量

  public static void  method(int param1,int param2 //参数){

     int i =0; // 局部变量

   }

  }

   1.1.1 JAVA的局部变量

      ○  局部变量声明在方法、构造方法或者语句块中;
      ○  局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成+ 后,变量将会被销毁;
      ○  访问修饰符不能用于局部变量;
      ○  局部变量只在声明它的方法、构造方法或者语句块中可见;
      ○  局部变量是在栈上分配的。
      ○  局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

   1.1.2 JAVA的实例变量

      ○  实例变量声明在一个类中,但在方法、构造方法和语句块之外;
      ○  当一个对象被实例化之后,每个实例变量的值就跟着确定;
      ○  实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
      ○  实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
      ○  实例变量可以声明在使用前或者使用后;
      ○  访问修饰符可以修饰实例变量;
      ○  实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
      ○  实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

   1.1.3 JAVA的类变量(静态变量)

      ○  类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
      ○  无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
      ○  静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
      ○  静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
      ○  静态变量在程序开始时创建,在程序结束时销毁。
      ○  与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
      ○  默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
      ○  静态变量可以通过:ClassName.VariableName的方式访问。
      ○  类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

   1.1.4 Java中的参数

      ○  形参不能离开方法。形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。而实参可以再程序的任何地方都使用。
      ○  形参代表一个合集,具有不确定性,而形参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例)。

  1.2 定义变量

    定义变量的两种方式

  1. 定义变量后直接+分号 ——定义变量未初始化 (int a;)

		int a;	//声明

  1. 定义变量 = value —— 定义变量且进行初始化 (int a = 100)

		int a = 100;	//声明并赋值

  1.3 命名变量名(类名、方法名)

   1.3.1 变量命名规则

      1. 必须以字母(包括中文)、下划线、美元符$ 开头
      2. 变量可以包括数字,但不能以数字开头
      3. 除了“_”或“$”符号以外,变量名不能包含任何特殊字符
      4. 不能使用Java中的关键字
      5. 大小写敏感

   1.3.2 变量命名规范

      1. 永远不要用美元符和下划线命名
      2. 永远使用有意义的名字作为变量名包括缩写
      3. 不要用中文以及拼音命名
      4. 类名称 ——单个单词的首字母都大写。比如:HelloWorldApp
      5. 方法名称 ——单个单词,除第一个单词以外,首字母大写。比如:helloWorldApp
      6. 常量(不可修改)——每个单词都大写,用下划线分割。比如:final int COUNT_OF_COURSES =100
      7. 类名称 和 变量名称 一般用名词;方法名称一般用动词

二.数据类型

        以下两张图片可以更直观的了解常用的数据类型。
Java中 变量、数据类型和运算符的运用_第1张图片
Java中 变量、数据类型和运算符的运用_第2张图片

三.包装类的应用

   将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
   常用的操作之一:用于基本数据类型与字符串之间的转换。
public class transition{
	public static void main(String[] args){
		//声明一个字符串
		String name = "1234567";
		//字符串转换数值性
		byte  num1 = Byte.parseByte(name);	
		short num2 = Short.parseShort(name);
		int   num3 = Integer.parseInt(name);
		long  num4 = Long.parseLong(name);
		//字符串转换小数
		float num5 = Float.parseFloat(name);
		double num6 = Double.parseDouble(name);
		//字符串转换字符
		char  num7  = naem.charAt(1); 
		
		//基本数据类型转换字符串
		String name =String.valueOf(123);
		String naem =123+"";
	}
}

四.运算符

   4.1 赋值运算符

      =      +=      -=      *=      /=      %=	

   4.2 逻辑运算符

      &&      ||      !      ? : 

   4.3 算数运算符

      +      -      *      /   %      

   4.4 比较运算符

      >      <      >=      <=      ==      !=

   4.5 一元运算符

      ++      --      ++i     i++      	

   4.6 位运算符

      ~(按位取反)		&(按位与)		|(按位或)		^(按位异或)

   4.7 位移运算符

      <<(左移)		>>(右移)  	  >>>(无符号右移)

五.接收输入的数据

      5.1 在Java中接收数据,我们需要用到Java中的Scanner类包。

	import java.util.Scanner;	//引用接收数据类型的类包
	public class date{
		//程序执行入口
		/**
		*我们接收基本数据类型和引用数据类型
		*/
		public static void main(String[] args){
			Scanner input=new Scanner(System.in);	//创建接收数据的对象
			//接收整型
			byte    num1 = input.nextByte();		//接收byte类型
			short   num2 = input.nextShort();		//接收short类型
			int     num3 = input.nextInt();			//接收int类型
			long    num4 = input.nextLong();		//接收long类型
			//接收浮点型
			float   num4 = input.nextFloat();		//接收float类型
			double  num5 = input.nextDouble();		//接收double类型
			//接收字符型
			char    num6 = input.next().charAt(0); 	//接收char类型
			//接收布尔型
			boolean num7 = input.nextBoolean();		//接收boolean类型
			//接收字符串
			String  num8 = input.next();			//接收String类型
		}
	}

      5.2 我们可以接收整数的进制类型

	import java.util.Scanner;	//引用接收数据类型的类包
	public class date{
		//程序执行入口
		/**
		*可以在整型类型中输入进制
		*/
		public static void main(String[] args){
			Scanner input=new Scanner(System.in);	//创建接收数据的对象
			//接收整型
			byte    num1 = input.nextByte(2);		//接收2进制byte类型
			short   num2 = input.nextShort(8);		//接收8进制short类型
			int     num3 = input.nextInt(10);		//接收10进制int类型
			long    num4 = input.nextLong(16);		//接收16进制long类型
			
		}
	}

六.数据类型转换

   6.1 自动类型转换(隐式类型转换)

    不同类型之前进行计算时,数据类型会往大的数据类型转换

   6.2 强制类型转换(显示类型转换)

    强制类型转换往往是从宽大的类型转换为小的数据类型

	public class type{
		//程序执行入口
		public static void main(String[] args){
			int a = 10;
			double b = 20.5;
			double c = a +b;//低级转高级,自动转换
			int d = (int) c;//高级转低级,强制转换
		}
	}

你可能感兴趣的:(Java学习笔记)