初级JAVA教程.ppt_第1页
初级JAVA教程.ppt_第2页
初级JAVA教程.ppt_第3页
初级JAVA教程.ppt_第4页
初级JAVA教程.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、JAVA2编程技术基础,四川大学锦城学院 计算机科学与信息工程系 赵 春 zhaochun_c.n,Java语言基础,求图形面积,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 main java.lang.ArrayIndexOutOfBoundsException:

2、 0 at com.basic.Graphic.main(Graphic.java:6),java Graphic,Java语言基础,读取用户输入,输入为空?,提示用户输入错误,正常进行计算,是,否,求图形面积,Java语言基础,程序流程控制,if(expression) / 程序块1 else /可选项 /程序块2 ,选择语句,Expression?,程序块1,程序块2,return,true,false,Java语言基础,选择语句,例:猜商品价格,public class QuessNumber public static void main(String args) int price

3、= 120; int qNumber = Integer.parseInt(args0); if(target=qNumber) System.out.println(您猜中了!); else System.out.println(“谢谢参与!); ,Java语言基础,选择语句,例:猜商品价格,if(target=qNumber) System.out.println(您猜中了!); else System.out.println(重在参与,谢谢猜数!); ,if(target=qNumber) System.out.println(您猜中了!); else System.out.printl

4、n(重在参与,谢谢猜数!);,if(target=qNumber) System.out.println(您猜中了!); if(target!=qNumber) System.out.println(“重在参与,谢谢猜数!”);,Java语言基础,选择语句,例:猜商品价格 提示用户,public class QuessNumber public static void main(String args) int target = 100; int qNumber = Integer.parseInt(args0); if(targetqNumber) System.out.println(您猜

5、的价格低于实际价格!); else if(targetqNumber) System.out.println(您猜的价格高于实际价格!); else System.out.print(您猜中了! ); ,选择语句可以嵌套使用,Java语言基础,求图形面积,coding,public class Graphic public static void main(String args) if(args.length=0) System.out.println(请输入正方形边长!); else double length = Double.parseDouble(args0); double are

6、a = 0; area = length * length; System.out.println(area); ,思考:如何让用户在 程序运行过程中与程 序交互?,Java语言基础,Java API,扫描器 Scanner java.util.Scanner,一个可以使用正则表达式来分析基本类型和字符串的 简单文本扫描器,Java语言基础,Scanner,public class J_Test public static void main(String args) Scanner scanner = new Scanner(System.in); while(scanner.hasNext

7、() String s = scanner.next(); if(s.equals(exit) break; System.out.println(s); scanner.close(); ,代表来自键盘的标准输入,判断是否还有下一个元素,获取下一个元素,关闭扫描器对象,创建扫描器对象,Java语言基础,coding,import java.util.Scanner; public class Graphic public static void main(String args) Scanner scanner = new Scanner(System.in); if(scanner.has

8、Next() double length = Double.parseDouble(scanner.next(); double area = 0; area = length * length; System.out.println(area); ,思考:如何让用户在 程序运行过程中多次 与程序交互?,Java语言基础,程序流程控制,循环结构, 初始化部分:设置相关循环变量的初始值 条件部分:决定是否执行循环 循环部分:反复执行的一段代码,主体部分 迭代部分:对循环计数器进行加1或减1的操作来进 行下一轮循环,Java语言基础,循环语句,for (initialization;conditi

9、on;iteration) repetition; , 初始化、条件及迭代部分 都可以是空语句。 若控制变量已初始化,则 可以省略初始化部分。 若增量由for循环体内的语 句完成或不需要增量,则迭 代部分也可以被省略。,Java语言基础,循环语句,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语言基础,Example,今有

10、物不知其数,三三数之剩二,五五数 之剩三,七七数之剩二,问物几何?,public class JavaTest public static void main(String args) int x; for(x=0;x100;x+) if(x%3=2) ,Java语言基础,循环语句,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,相邻元素进行比较,小 的元素往后移动 每一趟排序能够确保某 一个元素在正确的位置 为了提高效率,每

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

12、语言基础,循环语句,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 (ajaj+1) temp=aj+1; aj+1=aj; aj=temp; ,Java语言基础,public class QuessNumber public static void main(String args) int target = 100; int qNumber =

13、 0; System.out.println(请输入您猜的商品价格:); Scanner scanner = new Scanner(System.in); for (; scanner.hasNext();) qNumber = Integer.parseInt(scanner.next(); if (target qNumber) System.out.println(您猜的价格低于实际价格!); else if (target qNumber) System.out.println(您猜的价格高于实际价格!); else System.out.print(您猜中了!); ,循环语句,Ja

14、va语言基础,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() ,Java语言基础,跳转语句,break语句:跳出整个循环,int i = 0; for(;i10;i+) System.out.prin

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

16、环,Java语言基础,for循环 给用户三次机会,猜中即退出,int target = 100; int qNumber = 0; System.out.println(请输入您猜的商品价格:); Scanner scanner = new Scanner(System.in); for (int i=0; scanner.hasNext() ,Java语言基础,循环语句,while循环,initialization while(condition) repetition; iteration; ,Java语言基础,while循环 给用户三次机会,猜中即退出,public static voi

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

18、main(String args) int target = 100, qNumber = 0, i=0; System.out.println(请输入您猜的商品价格:); Scanner scanner = new Scanner(System.in); do if(scanner.hasNext() qNumber = Integer.parseInt(scanner.next(); if (target qNumber) System.out.println(您猜的价格低于实际价格!); else if (target qNumber) System.out.println(您猜的价格高

19、于实际价格!); else System.out.print(您猜中了!);break; i+; while (i3); ,Java语言基础,循环语句,while和dowhile的区别,int i = 10; while(i10) System.out.println(i); i+; ,int i = 10; do System.out.println(i); i+; while(i10);,先判断,再执行,先执行,再判断,Java语言基础,求图形面积,coding,public class Graphic public static void main(String args) double

20、 length = 0; double area = 0; Scanner scanner = new Scanner(System.in); while (scanner.hasNext() length = Double.parseDouble(scanner.next(); if (length 0) System.out.println(您的输入有误!); continue; else area = length * length; System.out.println(area); ,Java语言基础,求图形面积,thinking: add new sharp,Java语言基础,分支

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

22、in(String args) int score = 93; char grade; 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语言基础,分支语句,例:class J_Test public static void main(String args) int a =

23、 2; switch(a) case 1: 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语言基础,求图形面积,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

24、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语言基础,求图形面积,thinking 有N种图形,且每种图形的面积算法

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

26、象,类是具有相同属性和方法的一组对象的集合,它为属于 该类的所有对象提供了统一的抽象描述,其内部包括属 性和方法两个主要部分。,类,面向对象,正方形类 圆形类,类的属性和方法,面向对象,类或对象都拥有自己的属性和方法。属性描述的是状态;方法描述的是行为。,颜色:color 车牌:code 属主:ower 功率:power 排量:emission 品牌: type ,启动:start() 刹车:stop() 换挡:changePower() 开空调:airconditioner() 放音乐:turnonmusic() ,class:car,类的实例化,面向对象,类的实例化形成对象,或者说对象就是

27、类的实例。,class:car,实例化,object:car1,实例化,color: black code: 川A2006 ower: 锦城学院 power: 160/6300 emission: 2976 type: 奥迪A6 ,启动:start() 刹车:stop() ,类、对象与现实的关系,面向对象,消息,面向对象,消息,面向对象,class Parrot 品种 颜色 唱歌() 飞翔() ,消息接收方,消息:唱歌(),.,消息发送方,消息:唱歌(),消息发送方,消息接收方,封装,面向对象,隐藏实现细节 隔离变化 提高易用性,封装其实就是保护对象隐私。,封装,面向对象,封装性就是把对象的属

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

29、向对象,求图形面积,面向对象,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 = 正方形对象.计算面积; break; case 2: 创建圆形对象; 圆形对象.设定半径(length); area = 圆形对象.

30、计算面积; break; System.out.println(area); ,如何定义类? 如何创建对象? 如何访问对象?,类的定义,面向对象,包,面向对象,包的声明,面向对象,包的引用,面向对象,默认一个类只能访问与它在同一个包中的公共类; 若需要引用在其它包中的类,可以采用以下方法:, 完全限定类名 java.util.ArrayList list = new java.util.ArrayList(); 加载需要使用的类 import java.util.ArrayList; ArrayList list = new ArrayList(); 加载整个包 import java.uti

31、l.*; ArrayList list = new ArrayList();,访问控制修饰符 缺省(包访问权限),面向对象, 对一个类没有给定任何访问权限,则这个类具 有缺省的访问权限(包访问权限)。,class C,class B,class A,class E,Package 1,Package 3,Package 2,class D,访问控制修饰符 - public,面向对象,当使用关键字public,就意味着public之后紧 跟着的成员声明自己对每个人都是可用的。,package dessert public 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(“Di

温馨提示

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

评论

0/150

提交评论