Java语言是面向对象语言,Java程序的基本组成单位是类,类体又包括属性与方法两部分,每一个应用程序都必须包含一个main( )方法,含有main( )方法的类称为主类。
在Eclipse下依此创建项目item、包Number和类Frist,在类体中输入以下代码,实现在控制台输出“你好 java”。
package Number;
public class Frist {
static String s1 = "您好";
public static void main(String[] args) {
String s2 ="java";
System.out.println(s1);
System.out.println(s2);
}
}
运行结果如下:
代码中的所有标点符号都是英文字符,不要在中文输入法状态下输入标点符号,如双引号和分号,否者会导致编译错误。
文件名必须和类名Frist相同,即Frist.java,还要注意大小写,java是区分大小写的。
一个Java应用程序是由若干个类组成的,上面的代码就是一个类名为Frist的类,语句package Number为声明该类所在的包,package为包的关键字。
通常将类的属性称为类的全局变量(成员变量),将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。全局变量和局部变量都有各自的应用范围。上面代码中s1是成员变量,s2是局部变量。
main( )方法是类体中的主方法。该方法从“ { ” 开始,至 “ } ”结束。public、static和void分别是main( )方法的权限修饰符、静态修饰符和返回值修饰符,java程序中的main( )方法必须声明为public static void。String[]args是一个字符串类型的数组,它是main( )方法的参数。main( )方法是程序开始执行的位置。
Java是严格区分大小写的,例如,不能将关键字class等同于Class。
整数类型简称整型,用来存储整数数值,即没有小数部分的数值。可以是正整数,也可以是负数。整型数据根据它所占内存大小的不同,可分为byte、short、int和long 4种类型。它们具有不同的取值范围。
(1)定义int变量有以下四种语法:
int x; //定义int型变量x
int x,y; //同时定义int型变量x,y;
int x = 10,y = -5; //同时定义int型变量x,y;并赋予初值
int x =5 + 23; //定义int型变量x,并赋予公式(5+3)计算结果的初值
(2)int型是java整型值的默认数据类型。当多个尚未运行定义数据类型的整数做运算时,运算的结果将默认为int类型。例如,下面这行代码:
System.out.println(2+18); //输出20
(3)等同于如下代码:
int a = 2;
int b = 18;
int c = a+b;
System.out.println(c);//输出20
byte型的定义方式与int相同。定义int型变量,代码如下:
byte a;
byte a,b,c;
byte a = 19;b = -45;
short型的定义方式与int相同。定义short型变量,代码如下:
short s;
short s,t,r;
short s = 1000,t = -19;
short s = 20000/10;
由于long的取值范围比int型大,且属于高精度数据类型,所以在赋值时要和int型做出区分,需要在整数后面加上 L 或者 l (小写的 L)。定义long类型变量,代码如下:
long number;
long number,run;
long number = 12345678L,run = -987654321L;
long number = 123456789L*987654321L;
代码如下:
运行结果如下:
1:浮点类型简称浮点型,用来存储含有小数部分的数值。java语言中浮点类型分别为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围。
2:默认情况下,小数都被看作double型,若想使用float型小数,则需要在小数后面添加F或f。另外,可以使用后缀d或D来明确表明这是一个double类型数据,但不加d或D并没有硬性规定。而定义float型变量时,如果不加F或f,系统会认为是double类型数据,进而出错。定义浮点类型变量,代码如下:
float f1 = 13.23f;
double d1 = 4562.12d;
double d2 = 45678.1564;
3:创建BMIexponent类,声明double型变量height来记录身高,单位为米;声明int型变量weigt记录为体重,单位为千克;根据BMI=体重(身高*身高)计算BMI指数。代码如下:
4:运行结果如下:
三、字符类型
1. char 型
字符型(char)用于储存单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如's'表示一个字符。但是's'则表示一个字符串,虽然只有一个字符,但由于使用单引号,它任然表示字符串,而不是字符。
使用char关键字可定义字符变量,其语法如下:
char x = 'a';
2:由于字符a在Unicode表中的排序位置是97,因此允许将上面的语句写成:
char x = 97;
3:在项目中创建类Gess,编写如下代码,将Unicode表中某些位置上的字符以及一些字符在Unicode表中的位置在控制台上输出。
4:运行结果如下:
5:String类型为字符串类型,可以用来保存由多个字符组成的文本内容,其用法与字符类型类似,但文本内容需要用双引号标注。
2.转义字符
转义字符是一种特殊的字符变量,它以反斜杠“ \ ”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“ 转义 ”。例如,printf函数的格式串中用到的“ \n ”就是一个转义字符,意思就是“ 回车换行 ”。java中的转义字符表如下所示。
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
代码如下:
运行结果如下:
四、布尔类型
布尔类型又称为逻辑类型,简称布尔型,通过关键字boolean来定义布尔类型变量。布尔类型只有true和false两个值,分别代表布尔逻辑中的“ 真 ”和“ 假 ”。布尔值不能与整数类型进行交换。布尔类型通常被用在流程控制中,作为判断条件。定义布尔类型变量,代码如下:
boolean b; //定义布尔类型变量b
boolean b1,b2; //定义布尔类型变量b1、b2
boolean b = true; //定义布尔类型b,并赋值给初值true
代码如下:
运行结果如下:
标识符可以简单地理解为一个名字,是用来标识类名、变量名、主方法、数据名、文件名的有效字符顺序。
java语言规定标识符由任意的字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。标识符不能是java中的关键字(保留字)。
下面是合法标识符
name
user_age
$papg
下面是非法标识符
4word
String
User name
在java语言中,标识符中的字母是严格区分大小写的,如good和Good是不同的两个标识符。java语言使用Unicode标准字符集,最多可以标识65535个字符。因此,java语言中的字母不仅包括通常的拉丁文字a、b、c 等,还包括汉语、日语以及其他许多语言中的文字。
关键字又称保留字,是Java语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来使用。
Java中的关键字如表所示
变量的使用是程序设计中一个十分重要的环节。声明变量就是要告诉编译器(compiler)这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了便于操作,给这个空间取了一个名字,称为变量名。变量的命名必须是合法的标识符。内存空间的价值就是变量值。在声明变量时可以是没有赋值,也可以直接赋给初值。
例如,声明一个整数类型变量和声明一个字符类型变量,代码如下:
int age; //声明int型变量
char char1 = 'r'; //声明char型变量并赋值
对于变量的命名并不是随意的,应遵循以下几条规则:
变量名必须是一个有效的标识符。
变量名不可以使用java中的关键字。
变量名不可以重复。
应选择有意义的单词作为变量名。
在Java中允许使用汉字或其他语言文字作为变量名,如“ int 年龄 = 21 ”,在程序运行时不会出现错误,但建议读者不要使用这些语言文字作为变量名。
在程序运行中一直不会改变的量称为常量(constant),通常也被称为“final变量”。常量在整个程序中只能被赋值一次。在为所有的对象共享值时,常量是非常有用的。
在Java语言中声明一个常量,除了要指定数据类型,还需要通过final关键字进行限定。声明常量的标准语法如下:
final 数据类型 常量名称 【 = 值 】
常量名称通常使用大写字母,但这并不是必须的。很多Java程序员使用大写字母表示常量,是为了清楚地表明正在使用常量。
例如,声明常量(程序中用PI表示),代码如下:
final double PI = 3.1415926D; //声明double型常量PI并赋值
当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值,否则将会产生编译错误。从下面的实例中可看出变量与常量的区别。
在项目中创建类part,在类体中创建变量age与常量PI。在主方法中分别将变量与常量赋值,通过输入信息可测试变量与常量的有效范围。
public final class part { //新建类part
//声明常量PI,此时如不对PI赋值,则会出现错误提示
static final double PI =3.14;
static int age = 23; //声明int型变量age并赋值
public static void main(String[] args) { //主方法
final int number; //声明int型常量number
number = 1235; //对常量进行赋值
age = 22; //再次对变量进行赋值
number = 1236; //错误代码,number为常量,只能赋值一次
System.out.println("常量PI的值为:"+PI); //将PI的值输出
System.out.println("赋值后number的值为:"+number);//将number的值输出
System.out.println("int型变量age的值为:"+age); //将age的值输出
}
}
运行结果如下:
Exception in thread "main" java.lang.Error:无法解析的编译问题
final 局部变量 unmber 可能已经被赋过值
at part.main(part.java:11)
由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点,该变量就会释放掉,也就是说变量有它的生命期限。因此,变量的有效范围是指程序代码能够访问该变量的区域,若超出该区域,则编译的时候会出现错误。在程序中,一般会根据变量的“有效范围”将变量分为“成员变量”和“局部变量”。
在类体中所声明的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,即静态变量和实例变量。例如以下代码:
class Demo{
int x = 45;
static int y = 90;
}
其实,x为实例变量,y为静态变量(也称类变量)。如果在成员变量的类型前面加上关键字static,这样的成员变量称为静态变量。静态变量的有效范围可以跨类,甚至可达到整个应用程序内。对于静态变量,除了能在声明它的类内存取,还能直接以“类名.静态变量”的方式在其他类内使用。
在类的方法体中声明的变量(方法内定义,“ { ”与“ } ”之间的代码中声明的变量)称为局部变量。局部变量只在当前代码块中有效,也就是只能在“ { ”与“ } ”之内使用。
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在当前定义的方法内有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时,Java虚拟机会为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将会被销毁。
局部变量可与成员变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。
在项目中创建Val,分别定义名称相同的局部变量与成员变量,当名称相同时,成员变量将隐藏。
public final class Val { //新建类
static int times = 3; //定义成员变量times
public static void main(String[] args) { //主方法
int times = 4; //定义局部变量times
System.out.println("times的值为:" +times); //将times的值输出
}
}
运行结果如下:
times的值为:4