简单的JAVA基础让你认识java.ppt

上传人:sccc 文档编号:5356871 上传时间:2023-06-29 格式:PPT 页数:57 大小:568.52KB
返回 下载 相关 举报
简单的JAVA基础让你认识java.ppt_第1页
第1页 / 共57页
简单的JAVA基础让你认识java.ppt_第2页
第2页 / 共57页
简单的JAVA基础让你认识java.ppt_第3页
第3页 / 共57页
简单的JAVA基础让你认识java.ppt_第4页
第4页 / 共57页
简单的JAVA基础让你认识java.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《简单的JAVA基础让你认识java.ppt》由会员分享,可在线阅读,更多相关《简单的JAVA基础让你认识java.ppt(57页珍藏版)》请在三一办公上搜索。

1、1,Java 高级应用技术,经济与贸易学院喻华文Y,2,Java语言程序设计进阶篇,Java 高级应用技术,3,参考书目,Java核心技术Java编程思想http:/,4,Java基础之一,一.Java入门二.标识符、关键字和数据类型三.表达式和流程控制,5,一.Java入门,描述Java编程语言的主要特性描述Java虚拟机的主要功能描述垃圾收集是如何进行的列举Java虚拟机在运行时所执行的三大任务定义Class,Package和Application编写、编译并运行简单Java应用程序了解JavaDoc文档的作用了解java.lang包,6,Java编程语言的主要特性,面向对象可移植性,跨平

2、台支持分布式的网络应用安全性和健壮性,7,Java虚拟机,概念Java虚拟机(Java Virtual Machine)在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件。功能提供垃圾回收功能提供运行时环境,8,提供运行时环境,执行三大任务加载代码校验代码执行代码,9,一个Java应用程序,/*HelloWorld.java*/public class HelloWorld public static void main(String args)System.out.println(Hello World!);,10,类和包介绍,类(class)是描述提供某种功能的模块,类是

3、对象的模版。类被划分到不同的包(package)中,每个包都包含几个类。JDK的Java类库中的几个重要包:java.lang,java.io,java.awt,java.util,学生小张,学生小王,孙老师,陈老师,客户小红,客户小芳,售货员小丁,售货员小东,Student类,Teacher类,Customer类,Seller类,myapp.school包,myapp.store包,对象,11,Java源文件布局,包含三个“顶级”要素package声明语句import引入语句类声明语句每一个源文件中最多只能有一个公共访问类(用public修饰的类),-B.java-package b;/pa

4、ckage声明语句 import a.*;/import引入语句,或者import a.A;public class B/类声明语句 public static void main(String args)A a;/access class A a=new A();,-A.java-package a;/package声明语句public class A/类声明语句 public static void main(String args)a=new A();,12,源文件布局,a)import java.awt.*;package mypackage;class Myclass b)packa

5、ge myPackage;import java.awt.*;class MyClassc)/*This is a comment*/package myPackage;import java.awt.*;public class MyClass,13,程序入口main()方法的声明,以下两种方式是合法的main()方法声明:1.public static void main(String args)2.static public void main(String args),public class HelloWorld public static int main(String args)

6、System.out.println(hello world);return 0;,14,程序入口main()方法的声明,a)public static void main()b)public static void main(String string)c)public static void main(String args)d)static public int main(String args)e)static void main(String args),15,JDK简介,下载JDK:http:/是Java Development Kit(Java开发工具包)的缩写。它为Java应用

7、程序提供了基本的开发和运行环境。目前JDK的最成熟的版本为JDK1.5,也称为JDK5.0,它还有一个吸引人的商业名叫Tiger。JDK主要包括以下内容:Java虚拟机:负责解析和执行Java程序。Java虚拟机可以运行在各种操作系统平台上。JDK类库:提供了最基础的Java类以及各种实用类。java.lang、java.io、java.util、java.awt、javax.swing和java.sql包中的类都位于JDK类库中。开发工具:这些开发工具都是可执行程序,主要包括:javac.exe(编译工具)、java.exe(运行工具)、javadoc.exe(生成JavaDoc文档的工具)

8、和jar.exe(打包工具)等。,16,安装JDK,在本地机器上安装JDK假定JDK安装到本地后的根目录为,在bin目录下提供了以下工具:javac.exe:Java编译器,把Java源文件编译成Java类文件。jar.exe:Java应用的打包工具。java.exe:运行Java程序。javadoc.exe:JavaDoc文档生成器。为了便于在DOS命令行下直接运行这些工具,可以把/bin目录添加到操作系统的系统环境变量PATH变量中。,17,通过JDK来编译和运行的命令如下,命令行模式下:cmdcd d:USBMyCourseJavaMorelecture01d:javac-sourcep

9、ath src-d classes srcbB.javajava-classpath classes b.B,18,编译并运行如下代码,编译并运行A.java,B.java,B.class,A.class,B.class,package a,package b,/*A.java*/package a;public class A public A()System.out.println(new Instance of A);,/*B.java*/package b;import a.*;/import package a public class B public static void ma

10、in(String args)A a;/access class A a=new A();,19,理解目录结构,编译并运行A.java,B.java,examples,src,classes,a,b,a,b,A.java,B.java,A.class,B.class,20,二.标识符、关键字和数据类型,区分有效和无效标识符 确认Java关键字 列出八个基本类型 为数字类型和String类型定义文字值为一个简单的包含基本类型成员变量的类创建一个类定义 使用new构造一个对象 描述默认初始化 使用点符号访问一个对象的成员变量,21,注释,/comment on one line/*comment

11、on one or more line*/*documenting comment*/,22,javadoc注释,以“/*”开始,以“*/”结束。javadoc命令只处理源文件中在类、接口定义、方法、变量、构造器之前的注释.例:运行javadoc MyHelloworld.java,/*在main()方法中使用的字符串*see#main(java.lang.String)*/private static String sDisplay=HelloWorld;/*显示HelloWorld*param args 从命令行中*/mvvvpublic static void main(String a

12、rgs),javadoc MyHelloworld.java,23,标识符,标识符的规则($123,_param1):首字母只能是a-z、A-Z、$或者_其余字母只能是a-z、A-Z、$、_或者数字例题:Which of the following identifiers are ILLEGAL?a)_underscoreb)5Interstatec)Interstate5d)_5_,24,Java数据类型,基本类型逻辑类 boolean字符类 char 整数类 byte,short,int,long浮点类 double,float引用类型对象引用类型数组引用类型,25,直接数(literal

13、 value),直接数就是直接显式赋给某个变量的具体数值。共有7种类型的直接数:int型直接数(1,1567)long型直接数(22L,22l)float型直接数(234.5F,1.3f)double型直接数(234.5,235.6D,11.0d)boolean型直接数(true,false)char型直接数(a,u000F)String型直接数(“hello”),int score=99;long length=100L;float weight=14.12F;float height=14.12D;char sex=M;String name=“Tom”;,字符的16进制Unicode编码

14、,26,引用类型,对象引用类型数组引用类型Student tom;tom=new Student();int intArray=new int3;int age=18;,27,用new关键字创建对象,第一步:分配内存空间第二步:初始化为其变量类型的默认值第三步:调用构造方法第四步:返回对象实例的引用 public class Sample byte memberV1;int memberV2;public Sample()memberV2=2;/构造方法 public static void main(String args)Sample s=new Sample();,堆区,Sample对象

15、memberV1(占1个字节,值为0)memberV2(占4个字节,值为2),引用变量S,28,数组,1.声明 int intArray;或者int intArray;2.构造intArray=new int3;3初始化for(int i=0;i3;i+)intArrayii;,堆区,int数组int0(占4个字节,值为0)int1(占4个字节,值为0)int2(占4个字节,值为0),引用变量intArray,int intArray3;/非法的数组声明,new语句的作用,左边三步等价于:int intArray=new int0,1,2;或者:int intArray=0,1,2;,29,多

16、维数组,String arrays=new String2;arrays0=new String1;arrays1=new String3;arrays00=”example1”;arrays10=”example2”;arrays11=”example3”;,堆区,arrays0,arrays1,arrays00,”example1”,”example2”,”example3”,arrays10,arrays11,arrays12=null,arrays引用变量,30,数组的特性,数组的索引从0开始,length-1结束。公共属性变量length例1:What will happen if

17、you try to compile and run the following code?public class Q public static void main(String argv)int a=new int1,2,3;System.out.println(a1);System.out.println(aa.length-1);,31,变量的默认值,在创建一个类的对象时,Java会自动为它的成员变量初始化为默认值。数值型变量的默认值(0)字符型的默认值(u0000)布尔型的默认值(false)引用类型的默认值(null)。一个数组变量的默认值(null)数组的所有元素初始化为其相应

18、类型的默认值。,public class Sample int v1;boolean v2;Sample v3;long v4=new long3;String v5=new String3;public static void main(String args)Sample sam=new Sample();System.out.println(sam.v1);System.out.println(sam.v2);System.out.println(sam.v3);System.out.println(sam.v40);System.out.println(sam.v50);,32,三.表

19、达式和流程控制,区分成员变量和局部变量描述成员变量是如何被初始化的辨认、描述并使用Java操作符区分合法和非法基本类型赋值理解赋值兼容性的规律使用if,switch,for,while和do句型结构用break和continue控制循环流程,33,变量的作用域,成员变量:在类中声明,它的作用域是整个类。局部变量:在一个方法的内部或方法的一个代码块的内部声明。如果在一个方法内部声明,它的作用域是整个方法;如果在一个方法的某个代码块的内部声明,它的作用域是这个代码块。代码块是指位于一对大括号以内的代码。方法参数:方法或者构造方法的参数,它的作用域是整个方法或者构造方法。,class Scope i

20、nt x;/成员变量 int y;/成员变量 Scope(int x)int y=2;int z=3;this.x=x;/this.x代表成员变量x this.y=y;/this.y代表成员变量y x=0;y=0;public static void main(String args)Scope s=new Scope(1);System.out.println(s.x);System.out.println(s.y);System.out.println(s.z);/编译出错,34,变量的初始化,成员变量会自动初始化局部变量必须显式初始化再使用,class Sample int v1;boo

21、lean v2;public static void main(String args)Sample s=new Sample();System.out.println(s.v1);System.out.println(s.v2);,public void doComputation()int x=(int)(Math.random()*100);int y;int z;if(x 50)y=9;z=y+x;/Possible use before initialization,35,操作符,操作符进行算术或符号右移位。操作符是不带符号右移位操作符。操作符执行一个左移位短路(short circ

22、uit)操作符与非短路操作符字符串操作符+操作符=和对象的equals()方法(File,Date,String,包装类覆盖了equals(),36,右移位操作符,int a1=12 1;/变量a1的取值为6int a2=-12 2;/变量a2的取值为-3int a3=128 2;/变量a3的取值为32int a4=129 2;/变量a4的取值为32,37,逻辑右移位操作符,int a1=12 1;/变量a1的取值为6int a2=-12 2;/变量a2的取值为1073741821,38,左移位操作符,int a1=12 1;/变量a1的取值为24int a2=-12 2;/变量a2的取值为-

23、48int a3=128 2;/变量a3的取值为512int a4=129 2;/变量a4的取值为516,39,短路(short circuit)操作符,“,40,字符串操作符,String s1=Hello+World;/s1=HelloWorldString s2=Age:+1;/s2=Age:1String s3=Age:+new Integer(1);/s3=Age:1String s4=Answer:+true;/s4=Answer:trueString s5=Answer:+new Boolean(true);/s5=Answer:trueString s6=5+1+1+new I

24、nteger(1)+2+4+new Long(11);String s7=5+new Integer(1)+“2”+4+new Long(11);/编译出错System.out.println(5+1+1+new Integer(1)+2+4+new Long(11);/打印6112411以下表达式的执行步骤如下:(1)5+1 6/数学加法操作符(2)6+1 61/字符串连接操作符(3)61+new Integer(1)611/字符串连接操作符(4)611+2 6112/字符串连接操作符(5)6112+4 61124/字符串连接操作符(6)61124+new Long(11)6112411/字

25、符串连接操作符,41,int a=1;int b=1;Integer int1=new Integer(1);Integer int2=new Integer(1);Integer int3=int1;/int3和int1引用同一个对象int array1=new int1;int array2=new int1;int array3=array1;/array3和array1引用同一个数组System.out.println(a=b is+(a=b);System.out.println(int1=int2 is+(int1=int2);System.out.println(int1=int

26、3 is+(int1=int3);System.out.println(array1=array2 is+(array1=array2);System.out.println(array1=array3 is+(array1=array3);,程序打印结果如下:a=b is trueint1=int2 is falseint1=int3 is truearray1=array2 is falsearray1=array3 is true,当操作符=两边都是引用类型变量时,这两个引用变量必须都引用同一个对象,结果才为true。,堆区,Integer对象,Integer对象,int1变量int3变

27、量int2变量,操作符=,42,equals()方法,equals()方法是在Object类中定义的方法,它的声明格式如下:public boolean equals(Object obj)Object类的equals()方法的比较规则为:当参数obj引用的对象与当前对象为同一个对象,就返回true,否则返回false:public boolean equals(Object obj)if(this=obj)return true;else return false;,Animal animal1=new Dog();Animal animal2=new Cat();Animal animal

28、3=animal1;System.out.println(animal1=animal2);/打印falseSystem.out.println(animal1.equals(animal2);/打印falseSystem.out.println(animal1=animal3);/打印trueSystem.out.println(animal1.equals(animal3);/打印true,43,equals()方法,在JDK中有一些类覆盖了Object类的equals()方法,它们的比较规则为:如果两个对象的类型一致,并且内容一致,则返回true。这些类包括:java.io.File、j

29、ava.util.Date、java.lang.String、包装类(如java.lang.Integer和java.lang.Double类)。,Integer int1=new Integer(1);Integer int2=new Integer(1);String str1=new String(Hello);String str2=new String(Hello);System.out.println(int1=int2);/打印falseSystem.out.println(int1.equals(int2);/打印trueSystem.out.println(str1=str2

30、);/打印falseSystem.out.println(str1.equals(str2);/打印true,44,区分和equals()方法,Float f1=new Float(10F);Float f2=new Float(10F);Double d1=new Double(10D);a)f1=f2b)f1.equals(f2)c)f2.equals(d1)d)f2.equals(new Float(10),45,基本类型安全转换规则,目标数据类型的位数不小于被转换的数据的数据类的位数,这样才是类型安全的转换,才不会丢失需要转换的信息。基本数据类型 目标类型byte short char

31、 intlongfloat double高位转化为低位,必须进行强制类型转化short和char之间的赋值总需要一个强制类型转化,byte b=1;int i=b;short s=(short)i;char c=(char)s;,int a=256;byte b=(byte)a;/数据溢出,变量b的值为0,46,a)float f=1.3;b)char c=a;c)byte b=257;d)boolean b=null;e)int i=10;f)short s=1;char cs=s;,基本类型安全转换规则,47,引用类型的类型转换规则,子类赋值给父类,会自动进行类型转换。父类赋值给子类,需要

32、进行强制类型转换。,一个生物类型的引用变量可以引用任意一个其子类的实例。一个动物类型的引用变量永远不能引用植物类型的实例。一个动物类型的引用变量赋值给狗类型的引用变量,需要强制类型转换。,Animal animal;Cat cat;Dog dog;animal=cat;/编译成功 cat=animal;/编译出错 cat=(Cat)animal;/编译成功 dog=(Dog)cat;/编译出错,48,引用类型的类型转换规则例题:What will happen if you attempt to compile and run the following code?,class Base cl

33、ass Sub extends Base public class Tester public static void main(String argv)Base b=new Sub();Sub s=b;a)Compile and run without error b)Compile time Exception c)Runtime Exception,Sub s=(Sub)b;,49,参数传递,如果参数是基本数据类型,参数传递是将参数的数值传递给方法。如果参数是对象或数组,参数传递是将对象或数组的引用传递给方法。public void methodA()int a=1;String s=“

34、Hello”methodB(a,s);public void methodB(int p1,String p2),50,ParaTest.java,public class ParaTest public int v=0;public static void main(String args)/声明并初始化4个局部变量int p1=0;/p1是基本数据类型ParaTest p2=new ParaTest();/p2 是对象引用类型ParaTest p3=new ParaTest();/p3 是对象引用类型int p4=0;/p4 是数组引用类型/将4个局部变量作为参数传递给changePara

35、meter()方法 changeParameter(p1,p2,p3,p4);/打印4个局部变量 System.out.println(p1=+p1);System.out.println(p2.v=+p2.v);System.out.println(p3.v=+p3.v);System.out.println(p40=+p40);public static void changeParameter(int p1,ParaTest p2,ParaTest p3,int p4)p1=1;/改变基本数据类型参数的值p2.v=1;/改变对象类型参数的实例变量p3=new ParaTest();/改变

36、对象类型参数的引用,使它引用一个新的对象p3.v=1;/改变新的对象的实例变量p40=1;/改变数组类型参数的元素,打印:P1=0P2.v=1P3.v=0P40=1,51,ParaTest.java,main(),changeParameter(),int p1=0,ParaTest p2,ParaTest p3,int p4,int p1=0,ParaTest p2,ParaTest p3,int p4,调用,ParaTest对象v=0,ParaTest对象v=0,当main方法将参数传递给changeParameter(),两个方法中的p2,p3都分别引用同一个ParaTest实例,int

37、数组int0=0,52,ParaTest.java,main(),changeParameter(),int p1=0,ParaTest p2,ParaTest p3,int p4,int p1=1,ParaTest p2,ParaTest p3,int p4,调用,ParaTest对象v=1,ParaTest对象v=0,在changeParameter方法中,p3引用了一个新的ParaTest实例,ParaTest对象v=1,int数组int0=1,53,流程控制,分支语句if-else语句switch语句循环语句for语句while语句do-while语句特殊循环流程控制continueb

38、reak,54,分支语句(if,else语句),下面的语句是非法的:int x=1;if(x)/x is int你应该使用下列语句替代:int x=1;if(x!=0),public void amethod(int x)if(x0)System.out.println(大于0);else if(x=0)System.out.println(等于0);else if(x0)System.out.println(小于0);,55,分支语句(switch语句),int x=9;final int Y=2;switch(x)/必须是与int类型赋值兼容的变量default:System.out.pr

39、intln(“default”);case 1:System.out.println(“case1”);case Y:System.out.println(“caseY”);,int x=1;final int Y=2;switch(x)/必须是与int类型赋值兼容的变量default:System.out.println(“default”);case 1:System.out.println(“case1”);break;case Y:System.out.println(“caseY”);,打印defaultcase1caseY,打印case1,56,循环语句,/do-while循环in

40、t i=1;do System.out.println(i);while(i+3);,/while循环int i=0;while(i+3)System.out.println(i);,/for循环for(int i=1;i=3;i+)System.out.println(i);,打印123,57,流程控制语句,break:从switch语句、循环语句或标号标识的代码块中退出。以下while循环用于把1加到100:int a=1,result=0;one:while(true)result+=a+;if(a=101)break one;/终止循环System.out.println(result);/打印5050continue:跳过本次循环,执行下一次循环,或执行标号标识的循环体。以下for循环用于对1到100之内的奇数求和:int result=0;for(int a=1;a=100;a+)if(a%2=0)continue;/如果a是偶数,就跳出本次循环,继续执行下次循环 else result+=a;System.out.println(result);/打印2500,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号