Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为:
DataType identifier;
或
DataType identifier = value;
其中,DataType是变量类型,如int/string/char/double/boolean等;identifier是变量名称,即标识符;value就是声明变量的值。
注:
a、标识符由数字0-9、大小写字母、下划线、美元符号、人民币符号以及所有在十六进制0xc0前的ASCII码组成;
b、类或结构中的变量,若没有显示地初始化,则默认初始值为0;方法中的变量必须显示地初始化,否则出错。
变量按照作用域的不同可以分为:类变量、局部变量、方法参数变量、异常处理参数变量。
示例代码如下:
/********************************************************************************
* "类变量"的使用方法示例代码*/
class ClassVariable {
int price=100; //定义类变量price
String name; //定义类变量name
int num; //定义类变量num
}
public class Grammar {
public static void main(String[] args) {
ClassVariable c = new ClassVariable();
System.out.println("price="+c.price);
System.out.println("name="+c.name);
System.out.println("num="+c.num);
}
}
/////////////////////////////////////
/*
* "局部变量"的使用方法示例代码*/
public class Grammar {
public static void main(String[] args) {
int a=7;
if (5>3) {
int s=3;
System.out.println("s="+s);
System.out.println("a="+a);
}
// System.out.println("s="+s);
System.out.println("a="+a);
}
}
/////////////////////////////////////
/*
* "方法参数变量"的使用方法示例代码*/
public class Grammar {
public static void testFun(int s) {
System.out.println("s="+s);
}
public static void main(String[] args) {
testFun(100);
}
}
/////////////////////////////////////
/*
* "异常处理参数变量"的使用方法示例代码*/
public class Grammar {
public static void test() {
try{
System.out.println("Hello! Exception!");
}
catch (Exception e){ //异常处理块,参数为Exception类型
e.printStackTrace();
}
}
public static void main(String [] args) {
test();
}
}
在C/C++中,要以const关键字定义一个常量,而在JAVA中const不是关键字符,而是一个保留字符,它使用final关键字来定义一个常量,其语法如下:
final dataType constantName;
其中,final是定义常量的关键字,dataType是指明常量的数据类型,constantName是常量的名称。
注:
a、在定义常量时需要对其进行初始化;
b、final不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
c、在JAVA语言中,为了与变量区别,常量一般都采用大写字符。
示例代码如下:
/********************************************************************************
* "常量"的使用方法示例代码*/
public class Grammar {
public static void main(String [] args) {
final double PI=3.1415926;
int r=10;
double c=2*PI*r;
System.out.println("圆的周长="+c);
// PI=10;
}
}
JAVA语言的数据类型主要分为两大类:基本数据类型(字节型byte、字符型char、布尔型boolean、单精度浮点型float、双精度浮点型double、整型int、短整型short、长整型long)和引用数据类型(数组、类class、接口interface)。
具体如下图:
注:
a、所有的基本数据类型的大小都已经明确规定好,在各种不同的平台上都保持不变,这一特点有助于提高JAVA程序的移植性;
b、引用数据类型是由用户自定义的,用于限制其他数据的类型,JAVA语言中不支持C++中的指针类型、结构类型、联合类型和枚举类型;
c、对于浮点型数据来说,默认是double,若想被看做float,则需要在数据后面加上f或F;
d、Java语言中的字符类型使用两个字节的Unicode编码表示,字符通常用十六进制表示,范围从\u0000到\uFFFF,即0到65535。
示例代码如下:
/********************************************************************************
* "整数类型"的使用方法示例代码*/
public class Grammar {
public static void main(String [] args) {
byte a=10;
short b=20;
int c=30;
long d=40;
long sum=a+b+c+d;
System.out.println("10+20+30+40="+sum);
}
}
/*
* "浮点类型"的使用方法示例代码*/
public class Grammar {
public static void main(String [] args) {
double x=10.23;
int a=2;
float sum=(float)x*a;
System.out.println("sum="+sum);
}
}
/*
* "布尔类型"的使用方法示例代码*/
public class Grammar {
public static void main(String [] args) {
boolean a=true;
System.out.println("a="+a);
}
}
/*
* "字符类型"的使用方法示例代码*/
public class Grammar {
public static void main(String [] args) {
char a='A';
char b='B';
System.out.println("a+b="+(a+b));
}
}
运算符包括算术运算符、比较运算符、逻辑运算符、赋值运算符、条件运算符、自增自减运算符、位运算符,还要考虑到运算符的优先级别。
注:
a、自增自减运算符,例如i++和++i,其规则是谁在前先算谁;
b、在位运算符中,按位异或的运算符是^,这一点要特别注意;
示例代码如下:
/********************************************************************************
* "算术运算符"的使用方法示例代码*/
import java.util.Scanner; // 代码输入Scanner后,系统会自动加入这段代码
public class Grammar {
public static void main(String [] args) {
Scanner input= new Scanner(System.in); //系统输入
System.out.println("请输入第一个数:");
int num1=input.nextInt();
System.out.println("请输入第二个数:");
int num2=input.nextInt();
float add=num1+num2;
float sub=num1-num2;
float multi=num1*num2;
int div=num1/num2;
float rem=num1%num2;
System.out.println("add="+add+", sub="+sub+", multi="+multi+", div="+div+", rem="+rem);
}
}
/*
* "优先级"的使用方法示例代码*/
public class Grammar {
public static void main(String [] args) {
int a=10;
int b=5;
int c=12;
int result=a+b-(a++)*(b--)%c;
System.out.println("result="+result);
}
}
数据类型转换分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。
自动类型转换的实现需要同时满足两个条件:一是两种数据类型彼此兼容,第二个是目标类型的取值范围要大于源数据类型,即低级数据类型转换为高级类型数据。
转换规则如下:
(1)、数值型数据的转换:byte->short->int->long->float->double;
(2)、字符型转换为整型:char->int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
显示转换:当两种数据类型不兼容或类型的取值小于源类型时,自动转换无法进行,这时就需要进行强制类型转换。
参考代码如下:
/********************************************************************************
* "实战——把整数转换为二进制"——难度系数:*/
public class Grammar { //第一步:定义一个类
static String ConvertIntToBinary(int n) //第二步:定义一个方法
{
String binary=""; //保存二进制字符串
int i=n; //声明i变量,将参数n的值赋予它
int m=0; //声明初始化变量m
while (i>1)
{
i=n/2;
m=n%2;
binary =Integer.toString(m)+binary; //添加到binary字符串中
n=i;
}
if (i>0) binary="1"+binary;
return binary;
}
public static void main(String [] args) {
System.out.println("14转换为二进制为:"+ConvertIntToBinary(14));
System.out.println("15转换为二进制为:"+ConvertIntToBinary(15));
}
}