java编程理论知识重点_第1页
java编程理论知识重点_第2页
java编程理论知识重点_第3页
java编程理论知识重点_第4页
java编程理论知识重点_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、l 绪论【附】下面两条语句功能等价:System.out.printf("第 %2d 个三角形的底边为 %10.2f 高为 %10.2f 面积为%10.2fn", i+1, ri.getw(), ri.geth(), ri.getArea();System.out.println("第"+(i+1)+"个三角形的底边为"+ri.getw()+" 高为"+ri.geth()+" 面积为"+ri.getArea();其中:%2d表示2位十进制整数;%10.2f表示10位(包括2位小数)十进制实数;在

2、内存中,字节是最小的存储单元。每个字节(byte)能存储8个比特。十六进制(Hex)八进制(Octal)16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F;关于数值的符号将每个二进制数的最高位规定为“符号位”用于表示该数值的符号:0表示正号;1表示负号。获取负数n位编码的方法:i) 获取原码取该负数绝对值的n位二进制值;ii) 获取反码将上述原码取反;iii)获取补码将上述反码加1;例如,-1的8位补码的获取过程如下:i)-1的绝对值是1, 其8位二进制值是10000001(叫做“原码”);ii)10000001的“反码”是11111110;(取反时符号位不变!)iii

3、)加1后得11111111(“补码”);由补码获取原值的步骤:i) 获取反码将其编码取反;ii) 获取原码将上述反码加1;iii)如果其编码(原补码)的符号位为1,则为负数。下面以一个8位补码11101101为例,来观察其原值的获取过程:i) 将其补码11101101取反,得反码:00010010;ii) 将上述反码加1得其原码:00010011; 由此可知,该补码的原值的绝对值为19。iii)由于该补码的符号位为1,因此,该数的原值是-19。异号相加永不溢出!高位如有进位将被丢弃!溢出为 同号相加的结果,若其符号位与两个加数的符号位不同,则为溢出!溢出举例:01111111(+127)+ 0

4、0000011(+3)- 10000010(-126)ASCII码是一种用于英文字符集的编码,因此,它不能用于汉字! 在ASCII编码表中,常用字符及其编码对应如下:空格00100000(其十进制值为32);数字字符0 9 0011000000111001(其十进制值为4857);大写英文字母AZ0100000101011010(其十进制值为6590);小写英文字母az0110000101111010(其十进制值为97112);(大小写英文字母对应的编码相差32!这一点在以后编程时有用) Unicode码为16位编码,其编码通常以u开头的4位十六进制数表示:u0000 uFFFF。需要占用2个

5、字节。 编一个点阵中的字形的十六进制编码如“万”,一行一行从上到下分析,每一行写成1和0的形式,然后写成十六进制如(7F,FE)l 第一章 java概述 出现在表达式中的变量必须预先被赋值!Java编译器(javac)Java解释器(java)Java源代码文件(.java)经javac变为Java字节码文件(.clas)s再由解释器(java)最终出运行结果每一个简单Java应用程序的构架:public class 类名 public static void main (String args) / 在这里给出解决问题的 Java 语句 提醒:必须以“ 类名. java ”为文件名保存!l

6、第二章Java基本程序设计 next()用于读入一个不包括空格的字符串; 而nextLine()则可以包括空格。import java.util.Scanner; /Scanner类在java.util包中int i, j, k; /声明i、j、k都是 int类型的变量 用逗号隔开i = j = k = 1;/ 执行过程:k = 1; j = k; i = j;声明常量的语法格式: final 数据类型 常量名 = 值;/ final是声明常量的关键字 取余 后面那个为除数 20%3=2 -26%8=-2 5/2的结果是2而不是2.5 5.0/2的结果是2.5。 默认为int 为了表示一个lo

7、ng类型的直接量,需要在其后追加字母L或l(推荐使用L)浮点型的字面量被默认为double类型。可以在数字后面追加F或f来表示float类型的直接量。1.23456e-2 等于 1.23456×10-2 = 0.0123456。计算Java表达式优先级相同时,按照从左到右顺序执行。System类中的方法currentTimeMillis返回从GMT 1970年1月1日00:00:00开始到当前时刻的毫秒数。数值数据类型p25 简捷运算符p31强制转换的一般格式如下: (数据类型符)表达式 / 将表达式的值转换为指定的数据类型Math.pow( 2, 3 ) 2的3次方=8Math类在

8、java.lang包中。而java.lang包中所有的类都是由系统自动导入的。 字符串直接量必须括在双引号中。而字符直接量是括在单引号中的单个字符。因此,"A"是一个字符串,而'A' 则是一个字符。显示包含回车键(即换行)的信息: System.out.println("He said:n Java is fun "); n不需要双引号 所有数值运算符都可以用在char型数据上。无论另一个操作数是何类型,char数据都会首先被自动转换成int类型,然后再作进一步自动类型转换,如: int i = '2' + '3&

9、#39; ; / 转换为50+51int j = 2 + 'a' ; / 转换为2+97int k = 2.0 + 'a' ; / 'a'9797.0;然后计算:2.0+97.0任何一个int类型的整数都可以自动(隐式)地转换成字符型数据。例如:char ch = 65;System.out.println(ch); /显示结果为 A 而任何其他类型的数据都必须显式地转换为char。转换后,只保留该数的低16位,其余部分都被丢弃。假设 i = 1 且 j = 2,System.out.println( " i + j = "

10、+ i + j ); 结果是 i + j = 12,而不是 i + j = 3! java.lang.Math类中的方法调用形式参数类型返回值返回值的类型pow(x,y) double x的y次方doublerandom() 0.0,1.0 )的随机数doubleabs(x)int,long,float,doublex的绝对值doublesqrt(x) doublex的平方根 double l 第三章 选择语句 if用于交换两个变量值的最常用的三条语句。 int temp = number1; number1 = number2; number2 = temp;条件表达式的语法形式为:布尔表达

11、式 ?表达式1 :表达式2其运算过程是:如果布尔表达式的值为true,则条件表达式的结果为表达式1;否则,结果为表达式2. y = x > 0 ? 1 : -1 ;l 第四章 循环while语句的语法格式是: while ( 布尔表达式 ) 语句块 /“循环体” int number = (int)( Math.random() * 101 );产生的数为包括0和100的随机整数int count =0; 计数器通常要初始化 int sum = 0; / 累加器初始化import java.util.Scanner; Scanner input = new Scanner (System

12、.in);在循环控制中,不要使用浮点数来比较值是否相等。因为浮点数都是某些值的近似值,使用它们可能导致不精确的循环次数和不准确的结果。把和0的比较都转换为小于1e-6如果想要判断两个浮点数x1、x2是否相等,那么,你就应该使用下面的方法来解决:while ( Math.abs( x1 - x2 ) < 1e-6 ) . 而不能使用下面的代码:while ( x1 = x2 ) . /WhileExp.java:从键盘读入一个字符的方法import java.io.*; public class WhileExp public static void main(String args) t

13、hrows IOException int c = 0; /变量c为记录输入字母个数的计数器char ch;while( ( ch = (char)System.in.read() ) != 'n' )if( (ch>='A'&&ch<='Z') | (ch>='a'&&ch<='z') )c+; System.out.println( "其中字母的个数为:" + c ); do-while循环 do-while语句是while语句的变体。

14、其语法格式是: do 语句块 while(布尔表达式);首先执行循环体;然后计算并判断循环条件:如果为true,则重复执行循环体;否则,终止循环,转去执行下一条语句。 for语句的语法格式如下所示:for ( 循环变量初始化; 循环条件; 修改循环变量 ) 注意无分号 . / 循环体 for循环中的循环变量初始化和修改循环变量,都可以是用0个或多个用逗号隔开的表达式。例如:for ( i = 0, j = 0 ; ( i + j < 10 ); i+, j+ ) .在String类中,方法 charAt(i) 用于返回字符串中第i个字符;而方法 length() 则用于返回字符串的长度。

15、System.out.printf( "%4d"(每个输出值占4个字符位), i * j );在一个循环中使用break来终止循环当程序遇到continue时,它会结束当前迭代,程序控制将转向循环体的末尾。换句话说,continue只是跳出了一次迭代,而break则是跳出整个循环。l 第五章 方法判断是否素数的方法:public static boolean IsPrime ( int n ) for ( int i = 2; i <= n / 2; i+ )if ( n % i = 0 ) return false; return true; 定义一个方法的语法规则

16、如下:修饰符 返回值类型 方法名 ( 形式参数列表 ) . / 方法体public static int gcd ( int m, int n ).return n; 一个方法至多可以返回一个值。其类型可以是 Java允许的任何类型。例如,方法gcd的返回值类型为int、IsPrime的类型为boolean。 如果方法无返回值,则应将返回值类型写为 void。例如,主方法 main、println。在方法头中,必须对每个参数进行独立的声明。 return语句的功能是:结束方法的执行,并将执行点返回到调用程序同时将return指定的表达式的值交给调用程序。 方法的定义都是平行的不能嵌套定义一个方

17、法的定义不能放在另一个方法的定义中。 主方法main与其他方法的唯一区别在于,它是由Java解释器调用的。 main方法的方法头永远都是一样的:public static void main(String args) 由于局部变量(在方法内声明的变量,包括形参)都有自己的存储单元。因此,值得注意的是: 1、不同方法中的局部变量可以同名它们有各自的存储空间它们互不相干。 Main方法和其他方法里面的变量可以重名无论形参的值在方法中是否被改变,都不会改变实参变量值!对带有返回值的方法而言,return 语句不仅是必需要有的,而且还必须要让编译器“认为”至少有一条能被无条件执行到的 return 语

18、句!比如if语句最起码有一条else 不能全为else if()5.6 方法重载(overloading) 方法“重载”是指: 在一个类(class)中,同一个方法名的方法可定义多个,但它们的参数列表必须不同(参数的个数或类型不同)。 例如,下面两个就是被重载的方法:int max( int n, int m ) / 求2个int数的最大值 . double max( double n, double m ) /求2个double数的最大值 . 调用时,系统将会自动调用其形参列表与实参列表相匹配的那个方法。若一个方法直接或间接地调用自己,那么,这种调用被称为“递归调用”;而这种方法被称为“递归

19、方法”。l 数组需要使用数组,必须先要声明数组名,然后再要创建数组。int Myarray = new int10;/ 声明数组名并引用实例表示:声明并创建了一个长度为10的 int 型数组 Myarray。值得注意的是: 与声明变量名不同,声明数组名并没有给数组分配存储空间,而只是为该类型的数组“准备”了一个数组的名字而已它的值还是空的! 一个数组名只有在引用了一个数组实体(或叫做“实例”)“一个已被分配了存储空间的数组”后,它才能被用来存放一批数据。 “要获取一个数组实例并让数组名引用它”叫做“创建数组”。元素类型 数组名= new 元素类型元素个数;一旦数组越界,JAVA将会产生“数组下

20、标越界异常”: ArrayIndexOutOfBoundsException。数组的初始化是指:在创建数组实例时对元素进行初始化。例如, int array = 0,1,2,3,4,5,6,7,8,9 ;由于数组名实质上是一个引用,因此,不要在处理数组元素时单独使用数组名,以试图简化程序代码。 例如,下面代码是错误的:int array = 0,1,2,3,4,5,6,7,8,9 ;System.out.println( array ); / 错误的使用数组它输出的并不是数组 array 中的所有元素,而只是 array 所引用的数组实例的内部标识符。( Java中的每个实例都有一个内部标识符

21、。)使用键盘输入的值来初始化数组Scanner input = new Scanner (System.in); for( i = 0; i < arr .length ; i+ ) arr i = input.nextDouble();public static void printArray( int array )/该方法的形参为1个数组 若一个方法的形参为数组名,那么,该方法可以改变实参数组实例的内容!这个运行结果告诉我们,基本变量传递的是值,而数组传递的则是引用!在方法中使用 new 创建的数组实例,不会随方法的返回而消失!二维数组的创建格式:类型名 数组名 = new 类型名

22、;例如,int a = new int34; 习惯上称为“3行4列”二维数组的初始化语法格式:类型名 数组名 = 初值n1, 初值nm, , ;例如,int a = 1,2,3, 3,4,5, 5,6,7, 7,8,9 ;a.length的值是数组a的长度;ai.length的值是数组a中第i行的长度. 假设创建数组如下:double M = new double1010;使用键盘输入的值来初始化二维数组Scanner input = new Scanner (System.in);for( int i = 0; i < M.length ; i+ ) for( int j = 0; j

23、 < Mi.length ; j+ ) M i j = input.nextDouble();l 第七章 类与对象 类定义的语法形式 public abstract | final class 类名 extends 父类名 implements 接口列表 类体 类定义的第一个修饰符是可选项 public 。若选用public,则表示程序中的任何类都可以访问该类。若缺省public,则表示该类只能被本“包”(package)中的类访问。 在一个源程序文件中,只能有一个类可以被声明为public!而主类必须声明为public。 在windows中,包就是一个文件夹!类体是类定义中花括号所包括

24、的部分。它是类最具体的部分。它由两部分组成:(1)成员变量的声明;(2)成员方法的定义;为便于区别,通常将声明在方法内的局部变量称为“变量”。而声明在类中的成员变量将被称为“成员变量”,它们被用来存放对象的属性值。成员变量的定义形式public|private|protectedstaticfinal 类型符 成员名 =初值;其中,类型符和成员名是必选的;而其他部分则为可选项。 成员变量的访问控制符有三种:public | private | protected若选用public则表示它可被任何类访问。也称为“公有成员”。若选用private,则它只能由本类内部访问。也称为“私有成员”。若未选

25、用任何访问控制符,则表示它只能由本包中的类访问也称为“包成员”。 如, String name;成员是否允许被访问,首先要取决于其类是否允许被访问!然后再看成员是否允许被访问。由于成员的访问属性将受限于类的访问属性。因此,不要使成员的访问属性宽于其所在的类。类中域的访问规则: 在类外,不能直接使用域名,而只能使用“对象名 . 域名”来访问之。成员的第二、三个修饰符static 和 final若选用static,则称为“静态成员”。 否则称为“实例成员”。成员方法的定义和调用 public | private | protected static abstract final 返回值类型 方法名

26、 ( 形式参数列表 ) throws 异常 语句序列 调用格式:对象名.方法名(实参列表)域(成员变量和成员方法的统称)一个 ".java" 源文件中可以有多个类,但只能有一个public的类,并且public的类名必须与文件名一致。 对象是用于模拟现实世界中客观事物的程序元素。对象的声明、创建和初始化例如:Scanner input = new Scanner( System.in );Car myCar = new Car();Employee e = new Employee( 8888, 1991, 11, 21 );访问对象成员变量的格式为:对象.成员变量名调用对

27、象成员方法的格式为:对象.成员方法名( 参数列表 )构造方法的作用: 在创建对象时,可以根据用户给出的初始化值来初始化对象的成员变量。类的静态成员1. 静态方法 关键词“static”表示该方法是一个“静态方法”。作为区别,我们将不用 static 修饰的方法称为“实例方法”。 “实例方法”就是指对象中的方法(“对象”与“实例”同义)。类中的“静态方法”却不属于该类的对象,它们与该类的对象(实例)无关。因为它们只属于该类,并随该类的定义而存在(也叫做“类方法”)!静态方法的调用规则如下:类名 . 静态方法名(实际参数)可见,要想调用静态方法,无需创建对象。实例方法必须通过对象来调用主方法main必须是“公有的”、“静态的”。 其原因是:让 Jav

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论