Java程序的基本组成单元是类,类体中又包括属性与方法两部分。每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类。
package haha;
public class helloworld{
static String s1="你好";
public static void main(String[] args) {
String s2="Java";
System.out.println(s1);
System.out.println(s2);
}
}
文件名必须和类名helloworld相同,即helloworld.java。还要注意大小写,Java是区分大小写的。
通常将类的属性称为类的全局变量(成员变量),将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。
主方法中,public、static和void分别是main()方法的权限修饰符、静态修饰符和返回值修饰符。Java程序中的main()方法必须声明为public static void。String[] args是一个字符串类型的数组,它是main()方法的参数。main()方法是程序开始执行的位置。
在Java中有8中基本数据类型来存储数值、字符和布尔值。
整数数据根据它所占内存大小的不同,可分为byte、short、int和long4种类型,它们具有不同的取值范围。
在默认情况下小数都被看作double型,若想使用float型小数,则需要在小数后面添加F或f。另外,可以使用后缀d或D来明确表明这是一个double类型数据,但加不加d或D并没有硬性规定。而定义float型变量时,如果不加F或f,系统会认为是double类型数据,进而出错。
浮点值属于近似值,在系统中运算后的结果可能与实际有偏差。
package haha;
public class helloworld{
public static void main(String[] args) {
double height=1.72;
int weight=70;
double exponent=weight/(height*height);
System.out.println("您的身高为:"+height);
System.out.println("您的体重为:"+weight);
System.out.println("您的BMI指数为:"+exponent);
System.out.print("您的体重属于:");
if(exponent<18.5) {
System.out.println("正常过轻");
}
if(exponent>=18.5 && exponent<24.9) {
System.out.println("体重正常");
}
if(exponent>=24.9 && exponent<29.9) {
System.out.println("体重过重");
}
if(exponent>=29.9) {
System.out.println("肥胖");
}
}
}
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示。
char x='a';
由于字符a在Unicode表中的排序位置是97,因此允许将上面的语句写成:
char x=97;
同C和C++语言一样,Java语言也可以把字符作为整数对待。由于Unicode编码采用无符号编码,可以存储65536个字符,所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个0~65536多代表的Unicode表中相对应的字符,也必须使用char型显性转换。
package haha;
public class helloworld{
public static void main(String[] args) {
char word='d',word2='@';
int p=23045,p2=45213;
System.out.println("d在Unicode表中的顺序位置是:"+(int) word);
System.out.println("@在Unicode表中的顺序位置是"+(int) word2);
System.out.println("Unicode表中的第23045位是:"+(char) p);
System.out.println("Unicode表中的第45213位是:"+(char) p2);
}
}
布尔类型又称逻辑类型,简称布尔型,通过关键字boolean来定义布尔类型变量。布尔类型只有false和true两个值。
在Java语言种允许使用汉字或其他语言文字作为变量名,如"int 年龄=21"。
在程序运行过程种一直不改变的量称为常量,也称为“final变量”。常量在整个程序中职只能被赋值一次。
final double PI=3.1415926D;
常量名通常是用大写字母,但这并不是必须的。
在类体中所声明的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,即静态变量和实例变量。例如下面这段代码:
class Demo{
int x=45;
static int y=90;
}
其中,x为实例变量,y为静态变量(也称为类变量)。静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对于静态变量,除了能在声明它的类内存取,还能直接以“类名.静态变量”的方式在其他类内使用。
局部变量可与成员变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。
package haha;
import java.util.Scanner;
public class helloworld{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); //创建扫描器,获取控制台输入的值
System.out.println("请输入两个数字,用空格隔开(num1 num2):");
double num1=sc.nextDouble();
double num2=sc.nextDouble();
System.out.println("num1+num2的和为:"+(num1+num2));
System.out.println("num1-num2的差为:"+(num1-num2));
System.out.println("num1*num2的积为:"+(num1*num2));
System.out.println("num1/num2的商为:"+(num1/num2));
System.out.println("num1%num2的余数为:"+(num1%num2));
sc.close(); //关闭扫描器
}
}
使用逻辑运算符“&”会判断两个表达式,而逻辑运算符“&&”则是针对boolean类型的类进行判断,当第一个表达式为false时则不去判断第二个表达式,直接输出结果,从而节省计算机的判断次数。通常将这种在逻辑表达式中从左端的表达式可推断出整个表达式的值的情况称为“短路”,而那些始终需要执行逻辑运算符两端的表达式才能推断出整个表达式的值的情况称为“非短路”。
“&&”属于“短路”运算符,而“&”属于“非短路”运算符。