




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、Java基础1.1特点* 面向对象、平台无关性、分布式、可靠和安全、多线程。* Java是一种跨平台的语言,同时也是既编译又解释的语言。Java可以运行在网络不同的计算机上,但运行的计算机上必须装有相应的Java解释器。这种解释器被称为JVM(Java 虚拟机)。1.2 Java运行流程(1)先应该创建源程序,Java源程序一般用java作为扩展名,是一个文本文件,用Java语言写成,可以用任何文本编辑器创建与编辑;(2)源程序完成后,就可以进行编译,需要使用Java编译器“javac”,读取源程序并翻译成Java虚拟机能够明白的指令集合,且以字节码的形式保存在文件中。通常,字节码文件以class作为扩展名;(3)Java解释器即“java”,读取字节码,取出指令并且翻译成计算机能执行的代码,完成运行过程;该字节码运行的平台是Java虚拟机。只要计算机上装有Java虚拟机,无论采用那种操作系统,硬件配置情况如何,运行的结果都是一样的1.3 JVMJava语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。1.4 下载和安装JDK * Java不仅是编程语言,还是一个开发平台,Java技术给程序员提供了许多工具:编译器、解释器、文档生成器和文件打包工具等等。* SUN公司网站,或者百度“JDK 下载”,很容易下载到安装文件(1.6和1.7均可)。* 运行jdk-.exe文件,即可安装。* java环境变量配置:以WIN7 为例右键单击计算机,然后选择属性,然后-高级系统设置-环境变量(a)设置系统变量JAVA_HOME系统变量-新建-变量名:JAVA_HOME 变量值:C:Program FilesJavajdk1.6.0注意:填写的是JDK的安装路径,最好复制粘贴。如果安装时选择的默认设置,JDK的安装路径很可能是C:Program Files (x86)javajdk1.6.0_10,此时JAVA_HOME 变量值为C:Program Files (x86)javajdk1.6.0_10(b)设置系统变量Path找到系统变量Path,双击鼠标左键进入编辑状态,在变量值的最后面加上;%JAVA_HOME%bin (c)设置系统变量ClassPath若原来已经有系统变量ClassPath,则直接编辑变量值,在变量值得最后面加上 ;%JAVA_HOME%lib若原来没有系统变量ClassPath,则选择新建系统变量,变量名为ClassPath,变量值为.;%JAVA_HOME%lib(注意:不要少了分号前面的一点 .)1.5 Java application和Java appletJava语言可以编写两种类型程序,一种是Java application应用程序,一种是Java applet小应用程序(只能在www浏览器环境下运行,因此还必须建立一个HTML文件来调用Applet程序)。一个Java application由一个或者多个class文件组成。其中有一个class定义了main()方法,该类被称为主类,即该类可以独立运行。1.6 一个简单的java程序实例public class Hello public static void main(String args) System.out.println(欢迎学习Java);* 可以使用记事本来编辑,也可以使用开发工具软件,如Eclipse、JBuilder等。* 程序以类(class)的形式存在;一个类要能被解释器直接启动运行,必须有main方法;通常把含有main方法的类称为主类。* 源文件的名称一定要和主类的名称保持一致;* 源文件的扩展名为java;* Java语言区分大小写; * 运行:(1)在MS-DOS界面下,首先进入保存了文件Hello.java的目录(比如,Hello.java文件保存在e:java文件夹中,则在进入MS-DOS状态后,先键入e: 后回车,然后再键入cdjava后回车;(2)javac Hello.java;(3) java Hello *System.out.println( ) 与System.out.print( )的区别。1.7 注释为了使编写的程序便于阅读,常常在代码中插入注释。* 文档注释,对整个程序的功能等进行说明 /*开头,*/结束,可以跨行* 单行注释 /* 多行注释 /*开头,*/结束,可以跨行例: 在上面的Hello.java程序代码中插入如下的注释,运行结果不变。/* * 2008 itzcn * 版权所有*/public class Hello /对类进行声明 public static void main(String args) /*下面是方法的内容,注意花括号和分号的使用*/ System.out.println(欢迎学习Java);System.out.println(这是我的第一个Java程序); 注意:如果使用System.out.print,则在屏幕输出时不换行。System.out.println(欢迎学习Java)等效于System.out.print(欢迎学习Javan);二、语法基础2.1 标识符与关键字2.1.1标识符标识符就是一个名字。规则如下:(1)可以是字母、下划线、美元符号或数字,长度没有限制;(2)第一个字符不能是数字;(3)不能是true、false、 null和被赋予特殊意义或用途的关键字(详见教材P17)。2.1.2 关键字特殊用途、特殊含义的50个单词2.1.3 Unicode字符集各种字符的编码,最多可以识别65536个字符2.2数据类型数据包括常量和变量。变量只有定义之后才能使用! 2.2.1 基本数据类型Java可将数据类型分为两类,一种是面向对象的类型,而另一种则是非面向对象的基本数据类型(共8种)。在本节将详细介绍Java的基本数据类型和类型转换。类型关键字占用内存取值范围字节型byte一个字节-128 127短整型short两个字节-32768 32767整型int四个字节-2147483648 2147483647长整型long八个字节-9223372036854775808L 9223372036854775807L单精度浮点型float四个字节1.4E-45 3.4028235E38双精度浮点型double八个字节4.9E-324 1.7975931348623157E308字符型char两个字节0 65535或u0000到uFFFF布尔型boolean一个字节true或false(注意有4种整型,2种浮点型)public class Type01 public static void main(String args) char a=A; /* 字符型,用单引号括起来的一个字符,Unicode集;用双引号把字符串括起来,则为string类,但已经不属于基本数据类型,而是面向对象的数据类型*/ byte b=044; /8进制 short c=0x44; /16进制 long d=0x100ffL; /长整型,后面要加L float e=1.01f/0.3f; /含小数的数,后面加f为float型 double f=1.0/3.0; /含小数的数,默认为double型;若把0取消呢?boolean g=true;System.out.println(a=+a);System.out.println(b=+b);System.out.println(c=+c);System.out.println(d=+d);System.out.println(e=+e);System.out.println(f=+f);System.out.println(g=+g); 2.2.2 类型转换用常量、变量或表达式给另一个变量赋值时,两者的数据类型必须一致,即所赋值的类型必须是能被变量接受的数据类型。如果不一致,则需要进行类型转换,即从一种数据类型转换到另一种数据类型。类型转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。* 隐式转换:不同类型的数据混合运算时,自动按照低级类型数据转换成高级类型数据的规则进行。byte_short_int_long_float_double;char_int例如:在double a=3.14*5中,Java会自动把5转换为double型的数据,然后和double型数据3.14进行运算;如果把3.14*5的结果保存为int型,即int a=3.14*5,则会出现损失精度的问题,这种情况下需要用到强制转换。* 强制转换:public class Type02 public static void main(String args)int a=(int)3.14*5; /用括号加数据类型来实现强制转换System.out.println(a=+a); char型数据可以和65536以内的整数之间相互转化,详见教材P19例Example2_1.java2.3变量和常量* 变量:用字母命名(一般第一个单词的首字母为小写,第二个单词的首字母大写),必须定义之后才能使用;可以则定义的同时赋初值。如:inta,b=3,c=4;double d=3.14;变量的命名规则*常量:若要将字母或者单词(一般全部用大写字母)定义为常量,需用final来声明。例:从键盘输入r的值,然后以此为半径的圆的面积和球的体积。import java.util.Scanner; /导入Scanner类class DemoCircle public static void main(String args) final double PAI=3.14159; double r,mj,tj;System.out.println(请从键盘上输入圆的半径:); Scanner sc=new Scanner(System.in); /定义一个名叫sc的对象 r=sc.nextDouble(); /使用对象的方法mj=PAI*r*r;tj=4*PAI*r*r*r/3; System.out.println(圆的面积为:+mj);System.out.println(圆的体积为:+tj); *关于输入和输出,见教材P22和P23*关于转义符,见教材P19,只要求掌握 n ,b和t. 如System.out.println(欢迎学习tJava);的输入结果是Java之前空若干格。2.4运算符 2.4.1 算术运算符 * 自加+和自减-,特别注意运算符号在数的前面和后面的区别。public class Ys01 public static void main(String args) int x=1;int a=+x; /x先增加1,然后赋值给aint b=x+; /x先赋值给b,然后再增加1System.out.println(a=+a); System.out.println(b=+b);System.out.println(x=+x);2.4.2关系运算符* 返回true或false* 等于符号是=,不等于是!=2.4.3逻辑运算符! & |例如,(3=4)|(3b)?a:b; /满足条件为a,不满足条件为b2.4.5 位运算符整数型数据在计算机内存中以二进制的形式来表示。针对数据二进制表示时的位进行的运算。位与:a&b,都是1,则结果为1,否则为0.位或:a|b,都是0,则结果为1,否则为0.位异或:ab,相同,则结果为0,否则为1.例:教材P37public class Ys02 public static void main(String args) char a1=十,a2=点,a3=进,a4=攻; char secret=A; a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret);System.out.println(密文:+a1+a2+a3+a4); a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret);System.out.println(原文:+a1+a2+a3+a4); 三、控制语句程序控制语句分为三类:(1)条件语句(分支语句),包括if语句和switch语句;(2)迭代语句(循环语句),包括for循环语句、while循环语句和do-while循环语句;(3)跳转语句,包括break语句、continue语句和return语句。3.1条件语句3.1.1 单向分支(if)import java.util.Scanner; public class Tj01 public static void main(String args) System.out.println(输入一个学生成绩:);Scanner sc=new Scanner(System.in); /构造一个名为sc的对象,也可使用其他对象名intiScore=sc.nextInt(); /使用对象sc的方法 if(iScore100) System.out.print(你的输入有错误!);System.out.print(该学生得分为:+iScore+谢谢使用!); 3.1.2 双向分支(if-else)import java.util.Scanner; public class DemoIfTj02 public static void main(String args) System.out.println(输入一个学生成绩:);Scanner sc=new Scanner(System.in); intiScore=sc.nextInt(); if(iScore60) System.out.print(该学生得分为:+iScore+不及格!); else System.out.print(该学生得分为:+iScore+及格了!); 3.1.3嵌套import java.util.Scanner; public class Tj03 public static void main(String args) System.out.println(输入一个学生成绩:);Scanner sc=new Scanner(System.in); intiScore=sc.nextInt(); if(iScore60) System.out.print(该学生得分为:+iScore+不及格!);else if(iScore75) System.out.print(该学生得分为:+iScore+及格!);else if(iScore=0 & iScore=60 & iScore=75 & iScore=90 & iScore=100)System.out.print(该学生得分为:+iScore+优秀!); if(iScore100) System.out.print(输入有误!);3.1.4开关语句(switch)详见教材P42-43例:从键盘任意输入一个正整数,判断是否中奖(9、131、12为三等奖,209、596、27为二等奖,875、316、59为一等奖,其余整数没有奖)import java.util.Scanner;public class Tj04 public static void main(String args) int number=0;System.out.println(输入正整数(回车确定); Scanner reader=new Scanner(System.in);number = reader.nextInt();switch(number) case 9 : case 131 : case 12 : System.out.println(number+是三等奖); break; case 209 : case 596 : case 27 : System.out.println(number+是二等奖); break; case 875 : case 316 : case 59 : System.out.println(number+是一等奖); break; default: System.out.println(number+未中奖); *switch( )括号中的参数常用int型和char型的,不能使用long型数据;注意break语句的作用。* 思考:输入一个百分制的成绩,如何分级(优秀、良好、及格和不及格)?(提示:将成绩除以一个适当的数,可以缩小分支数量)3.2 循环语句3.2.1 for循环例:输入一个正整数,计算出它的所有因子import java.util.*; /调入util包中的所有类,包括了scanner类public class Xh01 public static void main(String args) System.out.println(输入一个数:); Scanner scan=new Scanner(System.in);int a=scan.nextInt();System.out.print(a+的所有因子是:); /注意print和println的区别 /*下面是循环体*/for (inti=1;ia;i+) if (a%i=0) System.out.print(i+ ); 思考:如何计算1加到100?3.2.2 while循环例:键盘输入一个正整数,然后计算1递加到这个数的总和。import java.util.Scanner;public class Xh02 public static void main(String args) int n=0,sum=0; Scanner sc=new Scanner(System.in);System.out.print(请输入一个自然数:);int number=sc.nextInt();while (n=number) sum=sum+n;n=n+1; System.out.println(sum=+sum);*注意在循环体中加入改变条件的语句,否则会造成死循环(如果出现,要终止使用ctrl+c).3.3跳转语句 * break :跳出所在的块,并从紧跟该块的第一条语句处执行(在开关语句中已经应用)。 * continue: 跳过循环体中尚未执行的语句,接着进行终止条件的判断,决定是否继续循环。 * return: 从当前方法中退出,返回调用该方法的语句处,通常用在方法体的最后(具体应用见后面的面向对象部分)。教材P46例public class E3_7 public static void main(String args) int sum=0,i,j; for( i=1;i=10;i+) if(i%2=0) /计算1+3+5+7+9 continue; sum=sum+i; System.out.println(sum=+sum); for(j=2;j=50;j+) /求50以内的素数 for( i=2;ij/2) System.out.println(+j+是素数); 3.4 编程举例 * 对于财经类专业的同学而言,应该扎实地掌握三种结构的程序设计(顺序、分支和循环),以便在以后的能够编写简单的程序来处理工作中的问题(例如数据的处理和计算)。例1:求一元二次方程的根。import java.util.Scanner;import java.lang.Math.*; /调入Math类,求平方根用sqrt()方法。public class L1public static void main(String args)float a=0,b=0,c=0,d=0, x1=0, x2=0;System.out.println(请输入一元二次方程的三个系数,数与数之间用空格分隔。);Scanner scanner=new Scanner(System.in);a=scanner.nextFloat();b=scanner.nextFloat();c=scanner.nextFloat();d=b*b-4*a*c;if (d0)x1=(float)(-b+Math.sqrt(d)/(2*a);x2=(float)(-b-Math.sqrt(d)/(2*a);System.out.println(x1=+x1+ x2=+x2+);elseif (d=0)x1=(float)(-b)/(2*a);System.out.println(x1=x2=+x1);elseSystem.out.println(此方程在实数范围内无解!);例2:输出九九乘法表public class L2public static void main(String args) for(int first=1;first10;first+) for(int second=1;second=0.01) /Math.abs ()为求绝对值,后面的0.01为设置的精度q=Math.pow(l,a)*Math.pow(k,b); /Math.pow ()为求幂函数值k=k+0.01;System.out.println(k=+k);注意:(1)本例中求解方程的根时没有考虑更高效的算法,而是在整个可能的取值范围内逐一搜寻;如果要考虑求解的效率,则可以使用共轭法等算法;(2)将弹性系数和L变为从键盘输入,则可以将该例变为更通用的程序,当然还得改变搜寻范围(即改变循环的起始值和终止值)。例4. 输入任意整数,求1/1!+1/2!+1/3!+.+1/n!数列的前n项之和。importjava.util.Scanner; classL4 public static void main(String args) Scanner sc=new Scanner(System.in); int n=sc.nextInt();double sum=0.0; for (inti=1;i=n;i+)doublejc=1.0;for (int j=1;j=i;j+)jc=jc*j;sum=sum+1/jc;System.out.println(sum=+sum); 例5.质数问题(1)任意输入一个正整数,然后输出该整数的所有因子;(2)任意输入一个正整数,然后判断其是否是质数。(1)importjava.util.Scanner;public class Zs01 public static void main(String args) Scanner sc=new Scanner(System.in); System.out.println(请输入任意一个整数:);int n=sc.nextInt();System.out.println(n+的所有因子是:);for (inti=1;i=n;i+)if(n%i=0)System.out.print(i+ ); (2)importjava.util.Scanner;public class Zs02 public static void main(String args) Scanner sc=new Scanner(System.in); System.out.println(请输入一个正整数:);int a=sc.nextInt();int k=0; for (int j=1;ja;j+) /也可以如教材,只计算到ja/2 if (a%j=0)k=k+1; if (k=1)System.out.println(a+是一个质数); else System.out.println(a+不是一个质数);例6. 输出图形问题。编写程序,输出如下图形public class L6public static void main(String args) inti,j;for(i=1;i=6;i+)for(j=1;j=i;j+)System.out.print(*);System.out.println(); 3.5数组1. 一维数组的创建和初始化(1)在创建的同时初始化例int a=3,6,4; 即定义了a0=3,a1=6,a2=4注意:数组标号从0开始。(2)在创建之后初始化如:double a=new double3; /声明一个数组变量并且申请内存空间,a和可交换顺序a0=3.1;a1=5.2;a2=2.7; /数组的初始化例1:public class DemoArray1 public static void main(String args) int a=new int10; for (inti=0; ia.length; i+) /length属性 ai=i;System.out.print(a+i+=+ai+t); System.out.println(); 例2:从键盘输入10个数,找出最大值importjava.util.Scanner;public class DemoArray2 public static void main(String args) int a=new int10; Scanner sc=new Scanner(System.in); for (inti=1; i=10; i+) System.out.print(请输入第+i+个整数:);int j=i-1;aj=sc.next
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年地勤机务考试题及答案
- 2025年下半年无人机装调检修工考试试题及答案
- 2025年机务勤务试题及答案
- 2025年东航飞行测试题及答案
- 2025年航空服务员技能认定考试试题及答案解析
- 高校合同模板(3篇)
- 安全用药护理考试题及答案
- 高速公路挡墙施工合同(3篇)
- 电子商务合同法律风险防控与合同签订流程优化
- 专业人士个人房贷转按揭服务合同
- 铁路劳动安全-常见事故预防
- 26个字母(课件)英语三年级上册
- 110KV35KV变电站继电保护整定计算书
- 第二章-环境管理的理论基础课件
- 旅游服务礼仪PPT第4版高职PPT完整全套教学课件
- EPC模式承包人建议书与承包人实施方案
- 江苏省临检中心 临床化学继教班 7.质控规则及IQCP概述欧元祝
- 主动防护网施工方案
- StarterUnits 1-3学历案 人教版七年级英语上册
- 客诉客退产品处理流程
- 自来水厂操作规程手册范本
评论
0/150
提交评论