一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。
编写Java程序时,应注意以下几点:
和其他语言一样,Java可以用修饰符来修饰类中的方法(行为)和属性(状态)。主要有两类修饰符:
在后面的章节中我们会深入讨论Java修饰符。
Java中主要有如下几种类型的变量:
数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。
Java5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
1 class FreshJuice{ 2 enum FreshJuiceSize{small,medium,large}; 3 FreshJuiceSize size; 4 } 5 6 public class FreshJuiceTest{ 7 public static void main(String []args){ 8 FreshJuice juice=new FreshJuice(); 9 juice.size=FreshJuice.FreshiJuiceSize.medium; 10 } 11 }
注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。
类似于C/C++、Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。
在Java中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。
在Java中,接口可以理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类(子类subclass)。
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。
Java的两大数据类型:
Java语言提供了八种基本类型。六种数字类型(4个整数型,2个浮点型),一种字符类型,还有一种布尔型。
1 public class PrimitiveTypeTest { 2 public 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 }
编译以上代码输出结果如下所示:
Float和Double的最小值和最大值都是以科学计数法的形式输出的,结尾的“E+数字”表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14*103,3.14E-3就是3.14*10-3。
实际上,Java中还存在另外一种基本类型void,它也有对应的包装类java.lang.void,不过我们无法直接对它们进行操作。
常量在程序运行时是不能被修改的。
在Java中使用final关键字来修饰常量,声明方式和变量类似:
final double PI =3.1415927;
虽然常量名也可以用小写,但是为了便于识别,通常使用大写字母表示常量。
字面量可以赋给任何内置类型的变量。例如:
byte a=68; char a=‘A‘;
byte、short、int、long都可以用十进制、十六进制以及八进制表示。
前缀0表示八进制;
前缀0x表示十六进制。
1 int decimal=100; 2 int octal=0144; 3 int hexa=0x64;
字符串常量和字符常量都可以包含任何Unicode字符。例如:
1 char a=‘\u0001‘; 2 String a="\u0001";
Java语言支持一些特殊的转义字符序列。
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级:
数据类型转换必须满足如下规则:
int i=128; byte b=(byte)i;
因为byte类型是8位,(-128——+127),所以当int强制转换为byte类型时,值128就会导致溢出。
(int)23.7==23; (int)-45.89f==-45
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如:short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
1 public class ZiDongLeiZhuan{ 2 public static void main(String[] args){ 3 char c1=‘a‘; 4 int i1=c1; 5 System.out.println("char自动类型转换为int后的值为“+i1); 6 char c2=‘A‘; 7 int i2=c2+1; 8 System.out.println("char类型和int计算后大的值等于”+i2); 9 } 10 }
1 public class QiangZhiZhuanHuan{ 2 public static void main(String[] args){ 3 int i1=123; 4 byte b=(byte)i1; 5 System.out.print("int强制类型转换为byte型后的值等于"+b); 6 } 7 }
原文:https://www.cnblogs.com/2020yl/p/12236999.html