配色: 字号:
Java程序设计
2020-12-26 | 阅:  转:  |  分享 
  
Java程序设计2020-12-25演讲人目录第一周1.第二周2.第三周3.01第一周第一周第1次课第2次课第一周第1次课1.绪论2.Ja
va开发环境搭建121.绪论1.1Java的起源与发展01021.1.1Java的发展历史1.1.2Java技术体系1.绪
论1.2什么是Java技术1.2.1Java语言1.2.2Java平台1.2.3Java的特征1.绪论1.3Java语法
机制概述1.1.类2.2.接口3.3.程序包4.4.多线程5.5.取消指针1.绪论1.4.2Java虚拟机JVM1.4Java
的运行系统与JVM1.4.1Java运行系统BA1.5Java程序开发1.5.1JavaAPI1.5.2Java程序的编
写与编译过程使用记事本开发第一个Java程序编译Java程序运行Java程序2.1JDK的下载、安装与配置2.2STS的下
载、安装与配置设置字体设置UTF-8编码设置代码格式化格式其他相关设置2.3使用STS开发第一个Java程序2.4安装阿里
代码分析插件2.Java开发环境搭建第一周第2次课012.1面向对象程序设计方法概述022.2对象与类032.3封装与数据
隐藏042.4继承052.5多态062.6基于服务的面向对象程序设计思想第一周第2次课2.7面向对象程序设计的优势2.1
面向对象程序设计方法概述A2.1.2面向对象程序设计方法的内涵2.1.1面向对象问题求解的基本思想B2.2对象与类成员变量:
状态成员方法:行为2.2.1对象的含义与结构122.2对象与类2.2.2对象之间的互操作消息传递2.2对象与类2.2.3
类的概念是对一类具有相同属性和行为的事物的高度抽是创建对象的模板2.2.4基于类与对象的面向对象问题求解方法面向对象求解方法
实体对象类型类对象保证对象数据的一致性并易于维护2.3封装与数据隐藏模块化BA2.4继承继承的概念单继承自行车山地车赛车前
后双坐车2.4继承多继承2.5.1多态的含义编译时多态运行时多态多态的分类01Shape多态的实例02使程序具有良好的可扩展性
使程序易于编写,并易于维护多态的优点032.5多态2.5.2晚联编实现多态的技术是动态绑定或晚联编(latebingding
)技术0102晚联编方式中,当向一个对象发消息时,所调用的代码直到运行时刻才确定。编译器可以保证该方法存在并且执行参数与返结果的类
型检查,但却不知道要执行的准确代码,在运行时刻,Java运行系统根据对象变量当时所指向对象的实际类型,调用该对象的相应方法。032
.7面向对象程序设计的优势使用大量可重用的类库,提高了开发效率,缩短了开发周期,降低了开发成本。采用了已经被证明为正确、有效的类
库,提高了程序代码的可靠性,减少了程序的维护工作量。提高了程序的标准化程度。02第二周第二周第3次课第4次课第二周第3次课3.1
标识符与数据类型3.1.1Java基本语法1.类2.语句与语句块3.注释4.对象5.main()方法3.1.1Java基本语法
1.类Java源文件packageclass类名类结构体示例3.1.1Java基本语法2.语句与语句块语句语句块3.1.
1Java基本语法3.注释单行注释多行注释文档注释3.1.1Java基本语法4.对象对象是类的具体的实例对象通过类创建,一般是
通过new类名()创建,和类同名的方法,称为构造方法。如:Shapeshape=newShape();对象通过.形式,调
用其属性和方法(非静态的)。如:shape.draw();3.1.1Java基本语法5.main()方法在一个类中可以定义一个
main方法,称为程序的入口。publicstaticvoidmain(Stringargs[]){//定
义一些方法和属性}3.1.2标识符1.标识符的定义规则⑴标识符以字母、“_”(下划线)、“$”开始,其他字符不可以作为开始符
⑵标识符不能使用Java的关键字、保留字⑶标识符区分大小写⑷标识符长度没有限制一般情况下,英文26字字母用的比较多。2.标
识符的风格约定⑴对于变量名和方法名,_和$,一般不作为标识符的第一个字符,因为这两个字符对于内部类具有特殊意义。⑵类名、接口名
、变量名和方法名,采用大小写混合的形式。类名和接口名每个单词的首字母大写,其余字母小写。变量名和方法名,第一个单词的第一个字母小写
,其余单词的首字母大写。⑶常量名完全用大写,并用下划线_连接不同的单词。⑷类名和接口名应使用名词,方法名应使用动词。3.1标
识符与数据类型3.1.3关键字当前版本的Java,使用了50个单词作为关键字和保留字3.1.4基本数据类型1.boolean2
.char3.整型4.浮点型5.基本数据类型共享3.1.4基本数据类型1.booleantruefalse3.1.4基本数据类
型2.char16位1.是文字型的基本数据类型,用单引号''''表示,是一个16位的Unicode码。2.字符型变量的默认初始值是
\\u0000。用十六进制表示,其范围是\\u0000——\\Uffff,如:''语''、''A''、''a''。1.char是一个16位的无
符号的数据类型,用十进制表示其大小范围是:0至2^32-1,即0-65535。2.在此范围内char和int自动转换成等值类型值
,并可以与int类型数值进行运算。超过65535的int类型转型到char类型,需要通过强制类型转换,char(65578)3.1
.4基本数据类型3.整型byteshortintlongJava整数类型和char类型长度与取值范围3.1.4基本数
据类型4.浮点型floatdoubleJava浮点类型长度与取值范围3.1.4基本数据类型5.基本数据类型共享Java的基本数
据类型,都是存储在栈中,栈有一个很重要的特殊性,就是存在栈中的数据可以共享。IntType.java:演示基本使用3.1.5字符
串String示例基本概念字符串常量池030102Java中的字符串实质上是Unicode字符序列,用String表示。Strin
g不是Java的基本数据类型,而是类,String的对象是不可变的。每一个字符串都有一个索引,索引从0开始,到字符串的长度-1。S
tring定义的是final类型的,即常量类型。三种存放“数据”的区域(暂时了解,不要求掌握)字符串常量池的设计思想String
Create.javaStringPool.javaStringNullOrEmpty.java第二周第4次课3.2表达式与语句
3.2.1变量4.例3-13变量及初始化(必):Variate.java3.变量初始化2.变量分类及作用域1.变量3.2.1
变量1.变量变量类型变量定义变量示例3.2.1变量2.变量分类及作用域局部变量类成员变量方法参数异常处理器(catch语句块)参
数3.2.1变量3.变量初始化在Java程序中,变量在使用前必须经过初始化。当创建一个对象时,对象所包含的实例变量在存储空间分配
后,就由JVM自动初始化。局部变量必须在使用前手工赋值初始值,进行初始化。如果编译器发现局部变量没有经过初始化,则将发生变异错误。
初始化示例基本类型变量(基本数据类型定义的变量)3.2.2基本类型变量与引用类型变量基本数据类型在被创建时,在栈上给其划分一
块内存,将数值直接存储在栈上。01引用类型变量(复合数据类型定义的变量)引用数据类型在被创建时,首先要在栈上给其引用(句柄)分
配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。02引用变量赋值过程03示例例3-14引
用变量的声明与实例化过程(必):MyDate.java043.2表达式与语句3.2.3常量030102常量示例:Constan
ts.javafinal数据类型变量名关键字final表示这个变量只能被赋值一次,一旦被赋值后,就不能再更改,习惯上,常量名全
部用大写字母。0301023.关系运算符与关系表达式1.概述2.算术运算符和算术表达式3.2.4运算符与表达式0604054.逻
辑运算符与逻辑表达式5.位运算符6.赋值运算符和赋值表达式3.2.4运算符与表达式7.其他运算符8.运算符的优先级9.Java强
制类型转换3.2.4运算符与表达式1.概述Java中的操作符可以分为如下几种:算术运算符、关系和条件操作符、位操作符、
逻辑操作符和赋值操作符。⑴算术运算符:+,-,,/,%,++,――⑵关系运算符:>,>=,<,<=
,==,!=⑶逻辑运算符:&amp;,|,!,^,&amp;&amp;,||⑷位操作符:>>
;,<<,>>>,&amp;,|,^,~⑸赋值操作符:=,+=,-=,=,/=,%=,&
amp;amp;=,|=,^=,<<=,>=,>>>=3.2.4运算符与表达式2.算术运算符
和算术表达式运算符算术表达式由操作数和算术运算符组成。在算术表达式中,操作数只能是整型或浮点型,Java的算术运算符有两种:二元
算术运算符和一元算术运算符。++和--运算符3.2.4运算符与表达式3.关系运算符与关系表达式运算符关系运算符用来比较两个操作
数,由两个操作数和关系运算符构成一个关系表达式关系运算符的操作结果是布尔类型的,即如果运算符对应的关系成立,则关系表达式结果为tr
ue,否则为false。示例3.2.4运算符与表达式4.逻辑运算符与逻辑表达式运算符逻辑表达式由逻辑型操作数和逻辑运算符组成。
一个或多个关系表达式可以进行逻辑运算。Java中逻辑运算符共有6种,5个二元运算符和1个一元运算符。逻辑运算符示例3.2.4运算
符与表达式5.位运算符运算符对于任何一种整数类型的数值,可以直接使用位运算符对这些组成整型的二进制位进行操作。这意味着可以利用屏
蔽和置位技术来设置或获得一个数字中的单个位或几位,或者将一个位模式向右或向左移动。由位运算符和整型操作数组成位运算表达式。位运算
符分为位逻辑运算符和位移位运算符。示例编码3.2.4运算符与表达式运算符赋值表达式由变量、赋值运算符和表达式组成。赋值运算符把
一个表达式的值赋给一个变量。赋值运算符分为赋值运算符一和扩展赋值运算符两种。在赋值运算符两侧的类型不一致的情况下,如果左侧变量类型
的级别高,则右侧的数据被转化为与左侧相同的高级数据类型后赋给左侧变量;否则,需要使用强制类型转换运算符。示例6.赋值运算符和赋值表
达式3.2.4运算符与表达式7.其他运算符其他运算符示例3.2.4运算符与表达式8.运算符的优先级具有两个或两个以上运算符的
复合表达式在进行运算时,要按表3-18所示的运算符的优先级顺序从高到低进行,同级的运算符则按从左到右的方向进行。Java算术运算符
的优先级3.2.4运算符与表达式9.Java强制类型转换造型(casting)的含义是把一种类型的值赋给另外一种类型的变量。如
果这两种类型是兼容的,则是低优先级类型的值赋给高优先级类型的变量,例如一个int型值可以赋值给一个long型的变量,则Java自动
执行转换。如果将高优先级类型的值赋给低优先级的变量,例如将一个long型值赋给一个int型变量,则可能造成信息的丢失。这时,Jav
a不能执行自动转换,编译器需要程序员通过强制类型转换方式确定这种转换。示例3.2.5语句1.表达式语句以语句分隔符“;”终结,则
构成了语句,称为表达式语句·赋值表达式;·增量表达式(使用++或--);·方法调用表达式;·对象创建表达式。表达式语句举例:
aValue=8933.234;//赋值语句aValue++;//增量语句System.out.println(aVal
ue);//方法调用语句IntegerintegerObject=newIntegex(4);//对象创建语句
2.声明语句声明变量或方法。例如:doubleaValuem8933.234;//声明语句3.程序流控制语句程序流控制语
句控制程序中语句的执行顺序。例如,for循环、while循环、switch和if语句都是程序流控制语句。03第三周第三周0102第
5次课第6次课第三周第5次课3.3程序流控制补充2.dowhile循环语法dowhile语句在执行时,首先执行循环体中的
语句,然后再求表达式的值。dowhile语句将一直执行语句块并测试表达式的值,直到表达式的值变为false。dowhile语句
是在循环体的底部求得表达式的值。因此dowhile语句至少要把循环体中的语句执行一遍。示例3.3.1while和dowhil
e语句1.while循环语法while语句使一个语句块在某种条件为真时循环执行示例for循环是支持迭代的一种通用结构,利用每次
迭代之后更新的计数器或类似的变量来控制迭代次数。for循环执行的次数是可以在执行前确定的,又称为确定循环。语法for(初始语句
;逻辑表达式;迭代语句){语句或语句块;}执行步骤1.执行初始语句2.判断逻辑表达式的值,当逻辑表达式为tru
e时,执行循环体语句。3.执行迭代语句,然后再去判别逻辑表达式的值。这个过程一直进行下去,直到逻辑表达式的值为false,循环结
束并转到for之后的语句。示例ForDemo.java:用for语句输出一个数组的元素ForJj.java:for循环打印九九
乘法表3.3.2for语句3.3.3增强的for循环在JDK5.0以后,为了便于对数组和集合(collecions)中
的元素进行迭代处理,Java中引人了一种增强的for循环形式。语法for(类型标识符:可迭代类型的表达式){语句
;}示例ForEachDemo.java:增强的for循环遍历数组3.3.4ifelse条件控制语句if语句使程序能够基于
某种条件有选择地执行某些语句。语法if(逻辑表达式){语句/语句块1;}elseif(逻辑表达式){
语句;}elseif(逻辑表达式){语句;}else{语句/语句块2;}示例IfElseDe
mo.java:输出成绩等级3.3.5switch语句在处理多个选项时,使用if/else结构显得有些繁琐,此时可以使用swi
tch语句,switch语句基于一个选项值,与后面的case匹配,决定要执行的语句组。语法switch(选项值){
caseci:语句组1;break;casecz:语句组2;
break;casecy:语句组k;break;[d
efault:语句组;break;]}示例SwitchDemo.java:输出月Swit
chDay.java:输出每一个月是几天3.3.6循环跳转语句010203概述break语句continue语句3.3.6循环
跳转语句概述breakcontinue这两个语句都可以带标签(lable)使用,也可以不带标签使用。标签是出现在一个语句之前的标
识符,标签后面要跟上一个冒号(:),标签的定义如下:label:statement;可以将标签放到任何语句中,
甚至可以放到if语句或者块语句。3.3.6循环跳转语句break语句breakbreak:lable示例3.3.6循环跳转语句
continue语句continuecontinue:lable示例键盘输入标准输人流Scannerin=newScann
er(System.in);第三周第6次课23.4数组补充3.4数组概述2数组是一种数据结构,用来存储同一类型值的集合。
数组的长度在创建时确定,并且在创建后不变,即不能在此基础上扩容,如果改变大小后,会重新指向新的地址。数组中的每一个元素都有一个整
数类型的下标,下标从0开始,到数组的长度-1。如果需要建立存储不同类型数据的集合,或者要求这种数据存储结构的长度可以动态变化,可
以使用java.util包中的各种集合(collection)类,如List、Vector等。可以声明任何类型的数组,包括基本类
型和类类型的数组。数组声明和其他类型的变量声明一样,需要有数据类型和变量名。8个基本数据类型:booleancharbyt
e、short、int、longfloat、double类类型两种方式[]:表示数组将表示数组的[]跟随在数组变量名之后将
表示数组的[]跟随在数组数据类型之后在数组的声明中不指定数组的长度在Java中数组是作为类来处理的,在Java中类类型变量的声明并不创建该类的对象。所以数组的声明并不创建实例数组的数据空间,而是给该数组变量分配了一个可用来引用该数组的引用空间。int[]a;只是在栈中声明了一个数组的引用a,在堆中并没有给其分配存储空间,初始化以后,才会分配存储空间。3.4.1数组的声明3.4.2数组的创建与初始化0301023.数组的长度1.用new创建数组2.通过初始化创建数组0604054.对象数组5.匿名数组6.遍历数组3.4.2数组的创建与初始化1.用new创建数组数组元素所需的内存空间是通过new运算符或通过数组初始化分配的。语法自动初始化为数组数据类型的初始值创建数组后,可以对数组进行操作:如,赋值操作。3.4.2数组的创建与初始化2.通过初始化创建数组Java中可以在数组声明中直接给数组赋初值。这样可以通过一条语句完成数组的声明、创建与初始化3项功能。语法3.4数组3.4.3多维数组3.4数组3.4.4数组的复制3.4数组3.4.5数组的排序3.4数组3.4.6Arrays的常用API感谢聆听
献花(0)
+1
(本文系职场细细品原创)