java超详细教程-适合初学者深入掌握Java知识_第1页
java超详细教程-适合初学者深入掌握Java知识_第2页
java超详细教程-适合初学者深入掌握Java知识_第3页
java超详细教程-适合初学者深入掌握Java知识_第4页
java超详细教程-适合初学者深入掌握Java知识_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、JAVA2编程技术基础编程技术基础四川大学锦城学院四川大学锦城学院 计算机科学与信息工程系计算机科学与信息工程系赵赵 春春zhaochun_c.nJava系列课程系列课程vJava语言基础语言基础 求图形面积求图形面积public class Graphic public static void main(String args) double length = Double.parseDouble(args0); double area = 0; area = length * length; System.out.println(area); Exception in thread mai

2、n java.lang.ArrayIndexOutOfBoundsException: 0at com.basic.Graphic.main(Graphic.java:6)java GraphicJava系列课程系列课程vJava语言基础语言基础读取用户输入输入为空?提示用户输入错误正常进行计算是否 求图形面积求图形面积Java系列课程系列课程vJava语言基础语言基础 程序流程控制程序流程控制if(expression) / 程序块1 else /可选项 /程序块2 选择语句Expression?程序块1程序块2returntruefalseJava系列课程系列课程vJava语言基础语言基础

3、 选择语句选择语句例:猜商品价格public class QuessNumber public static void main(String args) int price = 120; int qNumber = Integer.parseInt(args0); if(target=qNumber) System.out.println(您猜中了!); else System.out.println(“谢谢参与!); Java系列课程系列课程vJava语言基础语言基础 选择语句选择语句例:猜商品价格if(target=qNumber) System.out.println(您猜中了!);

4、else System.out.println(重在参与,谢谢猜数!); if(target=qNumber) System.out.println(您猜中了!); else System.out.println(重在参与,谢谢猜数!);if(target=qNumber) System.out.println(您猜中了!); if(target!=qNumber) System.out.println(“重在参与,谢谢猜数!”);Java系列课程系列课程vJava语言基础语言基础 选择语句选择语句例:猜商品价格 提示用户public class QuessNumber public stat

5、ic void main(String args) int target = 100; int qNumber = Integer.parseInt(args0); if(targetqNumber) System.out.println(您猜的价格低于实际价格!); else if(targetqNumber) System.out.println(您猜的价格高于实际价格!); else System.out.print(您猜中了! ); 选择语句可以嵌套使用Java系列课程系列课程vJava语言基础语言基础 求图形面积求图形面积 codingpublic class Graphic pub

6、lic static void main(String args) if(args.length=0)System.out.println(请输入正方形边长!); elsedouble length = Double.parseDouble(args0);double area = 0;area = length * length;System.out.println(area); 思考:如何让用户在程序运行过程中与程序交互?Java系列课程系列课程vJava语言基础语言基础 Java API扫描器 Scanner java.util.Scanner 一个可以使用正则表达式来分析基本类型和字符

7、串的 简单文本扫描器 Java系列课程系列课程vJava语言基础语言基础 Scannerpublic class J_Test public static void main(String args)Scanner scanner = new Scanner(System.in);while(scanner.hasNext() String s = scanner.next(); if(s.equals(exit) break; System.out.println(s); scanner.close(); 代表来自键盘的标准输入判断是否还有下一个元素获取下一个元素关闭扫描器对象创建扫描器对象

8、Java系列课程系列课程vJava语言基础语言基础 codingimport java.util.Scanner;public class Graphic public static void main(String args) Scanner scanner = new Scanner(System.in); if(scanner.hasNext() double length = Double.parseDouble(scanner.next(); double area = 0; area = length * length; System.out.println(area); 思考:如

9、何让用户在程序运行过程中多次与程序交互?Java系列课程系列课程vJava语言基础语言基础 程序流程控制程序流程控制 循环结构 初始化部分:设置相关循环变量的初始值 条件部分:决定是否执行循环 循环部分:反复执行的一段代码,主体部分 迭代部分:对循环计数器进行加1或减1的操作来进 行下一轮循环Java系列课程系列课程vJava语言基础语言基础 循环语句循环语句for (initialization;condition;iteration) repetition; 初始化、条件及迭代部分 都可以是空语句。 若控制变量已初始化,则 可以省略初始化部分。 若增量由for循环体内的语 句完成或不需要增

10、量,则迭 代部分也可以被省略。Java系列课程系列课程vJava语言基础语言基础 循环语句循环语句int n = 0;int i = 0;for (;i10;i+) n += i; for循环int n = 0;int i = 0;for (;i10;) n += i; i+; 利用for循环求1到10的累加和? int n = 0;for (int i=0;i10;i+) n += i;Java系列课程系列课程vJava语言基础语言基础 Example 今有物不知其数,三三数之剩二,五五数 之剩三,七七数之剩二,问物几何? public class JavaTest public stati

11、c void main(String args) int x; for(x=0;x100;x+) if(x%3=2) & (x%5=3) & (x%7=2) System.out.println(“这个数字是:这个数字是:”+x); Java系列课程系列课程vJava语言基础语言基础 循环语句循环语句 for循环 多重循环 冒泡排序:a = 3,0,2,1,4初始数据:3 0 2 1 4第 一 趟:3 2 1 4 0第 二 趟:3 2 4 1 0第 三 趟:3 4 2 1 0第 四 趟:4 3 2 1 0相邻元素进行比较,小 的元素往后移动每一趟排序能够确保某 一个元素在正确的

12、位置为了提高效率,每一趟 排序应该去掉那些已经 排好序的元素Java系列课程系列课程vJava语言基础语言基础首先扫描数组,定位每一个待比较的元素;然后再次 扫描除此元素以外的其它元素。for(?) for(?) ? 每一趟排序能够确保某一个元素在正确的位置需要排序的趟数:a.lengthfor(int i=0;ia.length-1;i+)为了提高效率,每一趟排序应该去掉那些已经排好序 的元素每一趟需要排序的元素个数:a.length-1-ifor(int j=0;ja.length-1-i;j+)相邻元素进行比较,小的元素往后移动if (ajaj+1) temp=aj+1; aj+1=aj

13、; aj=temp; Java系列课程系列课程vJava语言基础语言基础 循环语句循环语句 for循环 多重循环 /冒泡排序算法的Java实现public static void BubbleSort(int a ) int temp=0; for (int i = 0; i a.length-1; i+) for (int j = 0; j a.length-1-i; j+) if (aj qNumber) System.out.println(您猜的价格低于实际价格!); else if (target qNumber) System.out.println(您猜的价格高于实际价格!);

14、else System.out.print(您猜中了!); 循环语句循环语句Java系列课程系列课程vJava语言基础语言基础 for循环 给用户三次机会,猜中即退出public class QuessNumber public static void main(String args) int target = 100; int qNumber = 0; System.out.println(请输入您猜的商品价格:); Scanner scanner = new Scanner(System.in); for (int i=0; scanner.hasNext()&i qNumber

15、) System.out.println(您猜的价格低于实际价格!);else if (target qNumber) System.out.println(您猜的价格高于实际价格!);else System.out.print(您猜中了!); Java系列课程系列课程vJava语言基础语言基础 跳转语句跳转语句 break语句:跳出整个循环int i = 0;for(;i10;i+) System.out.println(i); if(i=6) break;int sum=0; outer: for(int i=1;i100;i+) inner: for(int j=1;j6) System

16、.out.println(“sum=”+sum);break outer: sum=15break inner: sum=109不带标签的break语句带标签的break语句break outer;break inner;Java系列课程系列课程 跳转语句跳转语句vJava语言基础语言基础 continue语句:跳出本次循环int i = 0;while(i10) i+; if(i=6) continue; System.out.println(i);Java系列课程系列课程vJava语言基础语言基础 循环语句循环语句 for循环Java系列课程系列课程vJava语言基础语言基础 for循环

17、给用户三次机会,猜中即退出int target = 100;int qNumber = 0;System.out.println(请输入您猜的商品价格:);Scanner scanner = new Scanner(System.in);for (int i=0; scanner.hasNext()&i qNumber)System.out.println(您猜的价格低于实际价格!);else if (target qNumber)System.out.println(您猜的价格高于实际价格!);else System.out.print(您猜中了!); break;Java系列课程系

18、列课程vJava语言基础语言基础 循环语句循环语句 while循环initializationwhile(condition) repetition; iteration;Java系列课程系列课程vJava语言基础语言基础 while循环 给用户三次机会,猜中即退出public static void main(String args) int target = 100; int qNumber = 0; int i=0; System.out.println(请输入您猜的商品价格:); Scanner scanner = new Scanner(System.in); while (scan

19、ner.hasNext()&i qNumber) System.out.println(您猜的价格低于实际价格!); else if (target qNumber) System.out.println(您猜的价格低于实际价格!); else if (target qNumber) System.out.println(您猜的价格高于实际价格!); else System.out.print(您猜中了!);break; i+; while (i3); Java系列课程系列课程vJava语言基础语言基础 循环语句循环语句 while和dowhile的区别int i = 10;while

20、(i10) System.out.println(i); i+;int i = 10;do System.out.println(i); i+;while(i10);先判断,再执行先执行,再判断Java系列课程系列课程vJava语言基础语言基础 求图形面积求图形面积 codingpublic class Graphic public static void main(String args) double length = 0; double area = 0; Scanner scanner = new Scanner(System.in); while (scanner.hasNext()

21、 length = Double.parseDouble(scanner.next(); if (length 0) System.out.println(您的输入有误!); continue; else area = length * length; System.out.println(area); Java系列课程系列课程vJava语言基础语言基础 求图形面积求图形面积 thinking: add new sharpJava系列课程系列课程vJava语言基础语言基础 分支语句分支语句 switch语句switch(expression) case value1: statement1;

22、break; case value2: statement2; break; default: statement; expression必须是一个类型为byte、short、int或char 的表达式。相应的case后的值也必须是与表达式类型 兼容的一个常量。 若case后没有break语句,则执行完本case后的程序以 后,继续执行下一个case后的程序。Java系列课程系列课程vJava语言基础语言基础 分支语句分支语句public class GradeSwitch public static void main(String args) int score = 93; char gr

23、ade; switch(score/10) case 10: case 9: grade=A; break; case 8: grade=B; break; case 7: grade=C; break; case 6: grade=D; break; default: grade=E; System.out.println(“93:grade is ”+grade); Java系列课程系列课程vJava语言基础语言基础 分支语句分支语句例:class J_Test public static void main(String args) int a = 2; switch(a) case 1

24、: a+=1; break; case 2: a+=2; case 3: a+=3; break; case 4: a+=4; break; default: a=0; System.out.println(a); Java系列课程系列课程vJava语言基础语言基础 求图形面积求图形面积public static void main(String args) double length = 0; double area = 0; int type = 0; Scanner scanner = new Scanner(System.in); while (scanner.hasNext() ty

25、pe = Integer.parseInt(scanner.next(); length = Double.parseDouble(scanner.next(); if (length 0) System.out.println(您的输入有误!); continue; switch(type) case 1: area = length * length; break; case 2: area = 3.14 * length * length; break; System.out.println(area); Java系列课程系列课程vJava语言基础语言基础 求图形面积求图形面积 thin

26、king 有N种图形,且每种图形的面积算法异常复杂 问题:主程序急剧膨 胀,难于管理。 解决方案: 1、在主程序中定义不 同的方法来封装。 2、面向对象Java系列课程系列课程v 面向对象面向对象 对象对象 一切皆是对象对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 Java系列课程系列课程 对象对象实体:正方形实体:圆形v 面向对象面向对象问题领域对象:正方形对象:圆形Java系列课程系列课程 对象对象正方形对象正方形对象正方形对象归纳为正方形类型v 面向对象面向对象Java系列课程系列课程 对象的抽象与产生对象的抽象与产生正方形正方形A正方形B正方形C抽象实例化v 面

27、向对象面向对象抽象的结果形成类实例化的结果产生对象Java系列课程系列课程 类类v 面向对象面向对象对对象的抽象形成了类。类:轿车 类:客车 类:车 抽象抽象抽象抽象Java系列课程系列课程v 面向对象面向对象 类是具有相同属性和方法的一组对象的集合,它为属于 该类的所有对象提供了统一的抽象描述,其内部包括属 性和方法两个主要部分。 Java系列课程系列课程 类类v 面向对象面向对象正方形类圆形类Java系列课程系列课程 类的属性和方法类的属性和方法v 面向对象面向对象 类或对象都拥有自己的属性和方法。属性描述的是状态;方法描述的是行为。颜色:颜色:color车牌:车牌:code属主:属主:o

28、wer功率:功率:power排量:排量:emission品牌品牌: type 启动:启动:start()刹车:刹车:stop()换挡:换挡:changePower()开空调:开空调:airconditioner()放音乐:放音乐:turnonmusic() class:car Java系列课程系列课程 类的实例化类的实例化v 面向对象面向对象 类的实例化形成对象,或者说对象就是类的实例。 class:car 实例化 object:car1 实例化color: blackcode: 川A2006ower: 锦城学院power: 160/6300emission: 2976type: 奥迪A6 启

29、动:start()刹车:stop()Java系列课程系列课程 类、对象与现实的关系类、对象与现实的关系v 面向对象面向对象Java系列课程系列课程 消息消息v 面向对象面向对象Java系列课程系列课程 消息消息v 面向对象面向对象class Parrot 品种 颜色 唱歌() 飞翔()消息接收方消息:唱歌().消息发送方消息:唱歌()消息发送方消息接收方Java系列课程系列课程 封装封装v 面向对象面向对象 隐藏实现细节 隔离变化 提高易用性封装其实就是保护对象隐私。Java系列课程系列课程 封装封装v 面向对象面向对象 封装性就是把对象的属性和方法结合成一个独立的相同 单位,并尽可能隐蔽对象

30、的内部细节。 把对象的全部属性和全部方法结合在一起,形成一 个不可分割的独立单位(即对象)。 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形 成一个边界,只保留有限的对外接口使之与外部发 生联系。 Java系列课程系列课程 继承继承v 面向对象面向对象 子类继承父类的所有性质,并可拥有自己新的属性和方法。Java系列课程系列课程 继承继承v 面向对象面向对象 继承是父类和子类之间共享数据和方法的机制 继承使得子类可以利用父类中定义的方法和变 量,就像它们属于子类本身一样。代码向上移动数据向下移动Java系列课程系列课程 多态多态v 面向对象面向对象 对象的多态性是指不同的对象在接收到相同的消息以

31、后 可以表现出不同的行为。 Java系列课程系列课程 求图形面积求图形面积v 面向对象面向对象Java系列课程系列课程 求图形面积求图形面积v 面向对象面向对象while (scanner.hasNext() type = Integer.parseInt(scanner.next(); length = Double.parseDouble(scanner.next(); if (length 0) System.out.println(您的输入有误!); continue; switch(type) case 1: 创建正方形对象; 正方形对象.设定边长(length); area = 正

32、方形对象.计算面积; break; case 2: 创建圆形对象; 圆形对象.设定半径(length); area = 圆形对象.计算面积; break; System.out.println(area); 如何定义类? 如何创建对象? 如何访问对象?Java系列课程系列课程 类的定义类的定义v 面向对象面向对象Java系列课程系列课程 包包v 面向对象面向对象Java系列课程系列课程 包的声明包的声明v 面向对象面向对象Java系列课程系列课程 包的引用包的引用v 面向对象面向对象 默认一个类只能访问与它在同一个包中的公共类;若需要引用在其它包中的类,可以采用以下方法: 完全限定类名 jav

33、a.util.ArrayList list = new java.util.ArrayList(); 加载需要使用的类 import java.util.ArrayList; ArrayList list = new ArrayList(); 加载整个包 import java.util.*; ArrayList list = new ArrayList();Java系列课程系列课程 访问控制修饰符访问控制修饰符 缺省缺省(包访问权限包访问权限)v 面向对象面向对象 对一个类没有给定任何访问权限,则这个类具 有缺省的访问权限(包访问权限)。class Cclass Bclass Aclass

34、EPackage 1Package 3Package 2class DJava系列课程系列课程 访问控制修饰符访问控制修饰符 - publicv 面向对象面向对象 当使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的。package dessertpublic class Cookie public Cookie() System.out.println( “Cookie constructor!”); void bite() System.out.println(“bite!”); import dessert;public class Dinner public Dinner() System.out.println(“Dinner constructor!”); public static void main(String args) Cook

温馨提示

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

评论

0/150

提交评论