Java基础语法和基本数据类型
Java基础语法
⼀个Java程序可以认为是⼀系列对象的集合,⽽这些对象通过调⽤彼此的⽅法来协同⼯作。
对象:对象是类的⼀个实例,有状态(属性)和⾏为(⽅法)。
类:类是⼀个模板,他描述⼀类对象的⾏为和状态。
⽅法:⽅法就是⾏为,⼀个类可以有很多⽅法。逻辑运算、数据修改以及所有动作都是在⽅法中完成的。
实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
基本语法
编写Java程序时,应注意以下⼏点:
⼤⼩写敏感:Java是⼤⼩写敏感的,这就意味着标识符Hello和hello是不同的。
类名:对于所有的类来说,类名的⾸字母应该⼤写。例如MyFirstJavaClass。
⽅法名:所有的⽅法都应该以⼩写字母开头。如果⽅法名含有若⼲单词,则后⾯的每个单词名⼤写。例如deleteMyWord。
源⽂件名:源⽂件名必须和类名相同。
主⽅法⼊⼝:所有的Java程序由public static void main(String []args)⽅法开始执⾏。
Java标识符
所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
⾸字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
关键字不能⽤作标识符
标识符是⼤⼩写敏感的
合法标识符举例:age、$salary、_value、__1_value
⾮法标识符举例:123abc、-salary
Java修饰符
和其他语⾔⼀样,Java可以⽤修饰符来修饰类中的⽅法(⾏为)和属性(状态)。主要有两类修饰符:
访问控制修饰符:default,public,protected,private
⾮访问控制修饰符:final,abstract,static,synchronized
在后⾯的章节中我们会深⼊讨论Java修饰符。
Java变量
Java中主要有如下⼏种类型的变量:
局部变量
类变量(静态变量static)
成员变量(⾮静态变量)
Java数组
数组是储存在堆上的对象,可以保存多个同类型变量。在后⾯的章节中,我们将会学到如何声明、构造以及初始化⼀个数组。
Java枚举
Java5.0引⼊了枚举,枚举限制变量只能是预先设定好的值。使⽤枚举可以减少代码中的bug。
例如,我们为果汁店设计⼀个程序,它将限制果汁为⼩杯、中杯、⼤杯。这就意味着它不允许顾客点除了这三种尺⼨外的果汁。
实例
1class FreshJuice{
2enum FreshJuiceSize{small,medium,large};
3 FreshJuiceSize size;
4 }
5
6public class FreshJuiceTest{
7public static void main(String []args){
8 FreshJuice juice=new FreshJuice();
9 juice.size=dium;
10 }
11 }
View Code
注意:枚举可以单独声明或者声明在类⾥⾯。⽅法、变量、构造函数也可以在枚举中定义。
Java关键字
Java注释
类似于C/C++、Java也⽀持单⾏以及多⾏注释。注释中的字符将被Java编译器忽略。
decimal是整数数据类型
继承
在Java中,⼀个类可以由其他类派⽣。如果你要创建⼀个类,⽽且已经存在⼀个类具有你所需要的属性或⽅法,那么你可以将新创建的类继承该类。
利⽤继承的⽅法,可以重⽤已存在类的⽅法和属性,⽽不⽤重写这些代码。被继承的类称为超类(super class),派⽣类称为⼦类(subclass)。
接⼝
在Java中,接⼝可以理解为对象间相互通信的协议。接⼝在继承中扮演着很重要的⾓⾊。
接⼝只定义派⽣要⽤到的⽅法,但是⽅法的具体实现完全取决于派⽣类(⼦类subclass)。
Java源程序与编译型运⾏区别
Java基本数据类型
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能⽤来储存该类型数据。
因此,通过定义不同类型的变量,可以在内存中储存整数、⼩数或者字符。
Java的两⼤数据类型:
内置数据类型
引⽤数据类型
内置数据类型
Java语⾔提供了⼋种基本类型。六种数字类型(4个整数型,2个浮点型),⼀种字符类型,还有⼀种布尔型。实例
1public class PrimitiveTypeTest {
2public static void main(String[] args) {
3// byte
4 System.out.println("基本类型:byte ⼆进制位数:" + Byte.SIZE);
5 System.out.println("包装类:java.lang.Byte");
6 System.out.println("最⼩值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
7 System.out.println("最⼤值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
8 System.out.println();
9
10// short
11 System.out.println("基本类型:short ⼆进制位数:" + Short.SIZE);
12 System.out.println("包装类:java.lang.Short");
13 System.out.println("最⼩值:Short.MIN_VALUE=" + Short.MIN_VALUE);
14 System.out.println("最⼤值:Short.MAX_VALUE=" + Short.MAX_VALUE);
15 System.out.println();
16
17// int
18 System.out.println("基本类型:int ⼆进制位数:" + Integer.SIZE);
19 System.out.println("包装类:java.lang.Integer");
20 System.out.println("最⼩值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
21 System.out.println("最⼤值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
22 System.out.println();
23
24// long
25 System.out.println("基本类型:long ⼆进制位数:" + Long.SIZE);
26 System.out.println("包装类:java.lang.Long");
27 System.out.println("最⼩值:Long.MIN_VALUE=" + Long.MIN_VALUE);
28 System.out.println("最⼤值:Long.MAX_VALUE=" + Long.MAX_VALUE);
29 System.out.println();
30
31// float
32 System.out.println("基本类型:float ⼆进制位数:" + Float.SIZE);
33 System.out.println("包装类:java.lang.Float");
34 System.out.println("最⼩值:Float.MIN_VALUE=" + Float.MIN_VALUE);
35 System.out.println("最⼤值:Float.MAX_VALUE=" + Float.MAX_VALUE);
36 System.out.println();
37
38// double
39 System.out.println("基本类型:double ⼆进制位数:" + Double.SIZE);
40 System.out.println("包装类:java.lang.Double");
41 System.out.println("最⼩值:Double.MIN_VALUE=" + Double.MIN_VALUE);
42 System.out.println("最⼤值:Double.MAX_VALUE=" + Double.MAX_VALUE);
43 System.out.println();
44
45// char
46 System.out.println("基本类型:char ⼆进制位数:" + Character.SIZE);
47 System.out.println("包装类:java.lang.Character");
48// 以数值形式⽽不是字符形式将Character.MIN_VALUE输出到控制台
49 System.out.println("最⼩值:Character.MIN_VALUE="
50 + (int) Character.MIN_VALUE);
51// 以数值形式⽽不是字符形式将Character.MAX_VALUE输出到控制台
52 System.out.println("最⼤值:Character.MAX_VALUE="
53 + (int) Character.MAX_VALUE);
54 }
55 }
View Code
编译以上代码输出结果如下所⽰:
Float和Double的最⼩值和最⼤值都是以科学计数法的形式输出的,结尾的“E+数字”表⽰E之前的数字要乘以10的多少次⽅。⽐如3.14E3就是3.14*103,3.14E-3就是3.14*10-3。
实际上,Java中还存在另外⼀种基本类型void,它也有对应的包装类java.lang.void,不过我们⽆法直接对它们进⾏操作。
类型默认值
引⽤类型
在Java中,引⽤类型的变量⾮常类似于C/C++的指针。引⽤类型指向⼀个对象,指向对象的变量是引⽤变量。这些变量在声明时被指定为⼀个特定的类型,⽐如Employee、Puppy等。变量⼀旦被声明后,类型就不能被改变了。
对象、数组都是引⽤数据类型。
所有引⽤类型的默认值都是null。
⼀个引⽤变量可以⽤来引⽤任何与之兼容的类型。
例⼦:Site site=new Site("Runoob")。
Java常量
常量在程序运⾏时是不能被修改的。
在Java中使⽤final关键字来修饰常量,声明⽅式和变量类似:
final double PI =3.1415927;
虽然常量名也可以⽤⼩写,但是为了便于识别,通常使⽤⼤写字母表⽰常量。
字⾯量可以赋给任何内置类型的变量。例如:
byte a=68; char a='A';
byte、short、int、long都可以⽤⼗进制、⼗六进制以及⼋进制表⽰。
前缀0表⽰⼋进制;
前缀0x表⽰⼗六进制。
1int decimal=100; 2int octal=0144; 3int hexa=0x64;
字符串常量和字符常量都可以包含任何Unicode字符。例如:
1char a='\u0001'; 2 String a="\u0001";
Java语⾔⽀持⼀些特殊的转义字符序列。
类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同⼀类型,然后进⾏运算。
转换从低级到⾼级:
数据类型转换必须满⾜如下规则:
1.不能对boolean类型进⾏类型转换。
2.不能把对象类型转换成不相关类的对象。
3.在把容量⼤的类型转换为容量⼩的类型时必须使⽤强制类型转换。
4.转换过程中可能导致溢出或者损失精度,例如:
int i=128;
byte b=(byte)i;
因为byte类型是8位,(-128——+127),所以当int强制转换为byte类型时,值128就会导致溢出。
5.浮点数到整数的转换是通过舍弃⼩数得到的,⽽不是四舍五⼊,例如:
(int)23.7==23; (int)-45.89f==-45
⾃动类型转换
必须满⾜转换前的数据类型的位数要低于转换后的数据类型,例如:short数据类型的位数为16位,就可以⾃动转换位数为32的int类型,同样float数据类型的位数为32,可以⾃动转换为64位的double类型。
1public class ZiDongLeiZhuan{
2public static void main(String[] args){
3char c1='a';
4int i1=c1;
5 System.out.println("char⾃动类型转换为int后的值为“+i1);
6char c2='A';
7int i2=c2+1;
8 System.out.println("char类型和int计算后⼤的值等于”+i2);
9 }
10 }
强制类型转换
1. 条件是转换的数据类型必须是兼容的。
2. 格式:(type)value type是要强制类型转换后⼤的数据类型
1public class QiangZhiZhuanHuan{
2public static void main(String[] args){
3int i1=123;
4byte b=(byte)i1;
5 System.out.print("int强制类型转换为byte型后的值等于"+b);
6 }
7 }
隐含强制类型转换
1. 整数的默认类型是int。
2. 浮点型不存在这种情况,因为在定义float类型时必须在数字后⾯跟上F/f。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论