Java基础_讲义
- 格式:doc
- 大小:111.00 KB
- 文档页数:7
第一讲 Java语言入门1.1 Java的特点1.1.1面向对象:∙与C++相比,JAVA是纯的面向对象的语言C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个"混血儿"。
而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。
1.1.2可移植(平台无关性):∙生成中间字节码指令与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。
任何操作系统,只要装有Java 虚拟机(JVM),就可以解释并执行这个中间字节码文件。
这正是Java实现可移植的机制。
∙原始数据类型存储方法固定,避开移植时的问题Java的原始数据类型的大小是固定的。
比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。
在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。
当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。
Java的字符串,则采用标准的Unicode格式保存。
可以说,没有这个特性,Java的可移植性也不可能实现。
1.1.3简单∙JAVA在语法上与C++类似JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;∙取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。
C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等∙JAVA的基本解释器和类支持模块大概仅40K即使加入基本的标准库和支持线程的模块,也才220K左右。
JAVA基础课程讲义-图文北京尚学堂科技JAVA基础课程北京尚学堂科技JAVA基础课程目录第一章JAVA入门............................................................. . (10)计算机语言发展史............................................................. . (10)JAVA开发环境搭建............................................................. ...........................................18一个典型的JAVA程序的编写和运行过程............................................................. ......19第一个程序常见错误............................................................. ........................................20第一个JAVA程序的总结和提升............................................................. ......................20常用Java开发工具............................................................. ...................................................20常用do命令............................................................. (21)本章笔试作业............................................................. (21)本章上机操作............................................................. (21)第二章(1)编程的基本概念............................................................. (22)注释............................................................. ............................................................... .............22标识符............................................................. ............................................................... .........22关键字/保留字............................................................. ..........................................................23变量(variable)..................................................... ............................................................... .....24常量(Contant)...................................................... ............................................................... ...25命名规则(规范)............................................................ ..........................................................25基本数据类型(primitivedatatype)............................................ . (26)整型变量............................................................. (26)浮点型............................................................. ................................................................27字符型(2个字节):......................................................... .........................................28boolean类型............................................................. .....................................................29运算符(operator)..................................................... (29)二元运算符.............................................................. .......................................................29一元运算符.............................................................. .......................................................30布尔逻辑表达符.............................................................. .. (30)2北京尚学堂科技JAVA基础课程位运算符............................................................. (30)扩展运算符............................................................. ........................................................31字符串连接符............................................................. ....................................................31三目条件运算符............................................................. ................................................31运算符优先级的问题............................................................. ........................................31自动类型转换............................................................. ....................................................32基本类型转化时常见错误和问题............................................................. ....................33方法............................................................. ............................................................... .............33简单的键盘输入和输出............................................................. ............................................33本章思考作业............................................................. (34)上机操作............................................................. ............................................................... .....34第二章(2)控制语句............................................................. (35)顺序结构............................................................. ............................................................... .....35选择结构............................................................. ............................................................... .. (35)if单选择结构............................................................. .....................................................35if-ele双选择结构............................................................. .............................................35If-eleif-ele多选择结构............................................................. ...................................36witch多选择结构............................................................. ............................................37循环结构............................................................. ............................................................... .. (39)While和dowhile的区别............................................................. ..................................41For循环............................................................. . (42)break语句和continue语句............................................................. .............................47语句块............................................................. ............................................................... .........48递归结构............................................................. ............................................................... .....49本章作业............................................................. ............................................................... .....50本章上机操作............................................................. (51)第三章JAVA面向对象程序开发............................................................. . (52)编程语言发展史............................................................. ........................................................52类和对象是如何产生发展的如何进化的............................................................. ............52面向对象思想初步(OOP初步ObjectOrientedProgramming)..................................... ........53面向对象编程的语言的三大特征简介............................................................. ....................56对象和类的概念............................................................. ........................................................56类和对象初步............................................................. (57)测试类的定义方式............................................................. ............................................57简单的学生类编写示例............................................................. ....................................58内存分析............................................................. (59)属性(field,或者叫成员变量)........................................................... .......................59引用类型............................................................. (60)类的方 (60)对象的创建和使用............................................................. ............................................60构造器(或者叫做构造方法,contructor)................................................. ......................60垃圾回收机制(GarbageCollection)............................................ ........................................63方法的重载(overload),构造方法的重载............................................................. ...............63thi关键字............................................................. ............................................................... ..653北京尚学堂科技JAVA基础课程tatic关键字.............................................................. (66)静态初始化块(经常用来初始化类,加载类信息时执行!)...........................................67package...... ................................................................ .............................................................68J DK中的主要包.............................................................. ........................................................68import................................................................ .....68eclipe的使用.............................................................. ..........................................................69继承(e某tend,inheritance)............................................... .. (70)为什么需要继承?继承的作用?........................................................... ......................70继承介绍............................................................. (70)如何实现继承?........................................................... ..................................................70继承使用要点............................................................. ....................................................71Object 类............................................................. ............................................................... .. (72)toString方法............................................................. ......................................................72equal方法............................................................. ........................................................73uper 关键字............................................................. . (74)方法的重写(override)................................................... ....................................................74隐藏/封装(encapulation)................................................. .. (75)为什么需要封装?封装的作用和含义?........................................................... ..........75使用访问控制符,实现封装............................................................. ............................76封装的使用细节............................................................. ................................................76多态(polymorphim).................................................. . (76)为什么需要多态............................................................. ..............................................76如何实现多态............................................................. ..................................................77方法绑定(methodbinding)................................................ .........................................77静态绑定............................................................. (77)动态绑定............................................................. (77)多态的使用要点............................................................. ................................................78对象的转型(cating)....................................................... ........................................................79final ............................................................... ..........................................................................81抽象类............................................................. ............................................................... .........82抽象类的使用要点............................................................. ....................................................83接口............................................................. ............................................................... . (83)为什么需要接口............................................................. ..............................................84如何定义接口............................................................. ..................................................84接口的本质探讨............................................................. ................................................84接口使用要点............................................................. ....................................................85接口的多继承............................................................. ....................................................86面向接口编程............................................................. ....................................................87OOP更多应用............................................................. .. (87)组合............................................................. ............................................................... .....87内部类(innerclae).......................................................................................................88字符串(ng.String类)的使用............................................................. ..............90字符串相等的判断............................................................. ............................................92思考作业............................................................. ............................................................... .. (93)4北京尚学堂科技JAVA基础课程上机作业............................................................. ............................................................... .....94第四章异常机制............................................................. ............................................................... .95导引问题............................................................. ............................................................... .....95异常(E某ception)的概念............................................................. ........................................96异常分类............................................................. ............................................................... .. (96)Error.......................................................... ............................................................... .......97Error和E某ception的区 (97)E某ception........................................................ ............................................................... ..97异常的处理办法之一,捕获异常............................................................. . (99)try 块............................................................. ............................................................... ...99catch..................................................... ............................................................... ............99finally.......................................... ............................................................... ....................100try,catch,finally,return执行顺序............................................................. ..................100异常的处理办法之二,声明异常:throw子句............................................................. 101方法重写中声明异常原则............................................................. ......................................102异常的处理办法之三,手动抛出异常,throw子句........................................................103自定义异常............................................................. .. (1)03使用异常机制建议............................................................. ..................................................104总结........................................................................105思考作业............................................................. ............................................................... ...105上机作业............................................................. ............................................................... ...105第五章数组............................................................. ............................................................... . (106)数组概述和特点............................................................. ......................................................106创建数组和初始化............................................................. ..................................................106数组常见操作............................................................. . (108)数组的拷贝............................................................. ......................................................108数组排序............................................................. ..........................................................109多维数组............................................................. ............................................................... ...110附录(面试前复习一下!!)........................................................ (111)冒泡排序.............................................................分法查找............................................................. ......................................................112命令行参数的问题............................................................. ..........................................113增强for循环............................................................. ...................................................114思考作业............................................................. ............................................................... ...114上机作业............................................................. ............................................................... ...115第六章常用类的使用............................................................. (117)基本数据类型的包装类............................................................. (117)包装类基本知识.............................................................. .............................................117包装类的用途.............................................................. .................................................118自动装箱和拆箱?autobo某ing,unbo某ing............................................................. .....119字符串相关类(String、StringBuffer、StringBuilder) (12)String类的常用方法(已讲过,不再讲!)......................................................... .....120StringBuffer和StringBuilder.................................................. ......................................121String和StringBuffer 和StringBuilder使用要点.. (123)5北京尚学堂科技JAVA基础课程时间处理相关类............................................................. (124)Date时间类(java.util.Date)............................................... ...........................................124DateFormat类和SimpleDateFormat 类............................................................. .........125Calendar日历类............................................................. ..............................................126可视化日历的编写............................................................. ..........................................128Math 类............................................................. ............................................................... .....131File 类............................................................. ............................................................... .. (132)为什么需要学习IO技术............................................................. ........................................146基本概念............................................................. ............................................................... (146)数据源.............................................................. . (146)流的概念.............................................................. .........................................................146第一个简单的IO流程序及深入(将文件中的数据读入).............................................146Java中流的概念细分.............................................................. .............................................148Java中IO流类的体系.............................................................. ...........................................149四个IO基本抽象类.............................................................. .. (150)InputStream.................................................... .. (1)50OutputStream................................................. .. (1)50常用InputStream和OutputStream子类用法 (1)50FileInputStream和FileOutputStream............................................... ...........................150ByteArrayInutStream和ByteArrayOutputStream.......................................... ..........154BufferedInputStream和BufferedOutputStream........................................... ...............156DataInputStream和DataOutputStream............................................... .......................157ObjectInputStream和ObjectOutputStream............................................. ...................158PrintStream.............................. ............................................................... . (158)6北京尚学堂科技JAVA基础课程Reader......................................................... ............................................................... ...158Writer................................................... ............................................................... ..........159FileReader和FileWriter..................................................... ..........................................159BufferReader和BufferWriter................................................... ....................................159InputStreamReader和OutputStreamWriter............................................. ...................161JAVA对象的序列化和反序列化............................................................. .. (161)为什么需要序列化和反序列化...................................................................................161对象的序列化主要有两种用途............................................................. ......................161序列化涉及的类和接口............................................................. ..................................162序列化/反序列化的步骤和实例............................................................. ....................162综合的序列化和反序列化练习............................................................. ......................163JAVA.IO包相关流对象用法总结(尚学堂1002班王鑫).....................................................165IO中其他常用类............................................................. .. (165)File 类............................................................. ............................................................... 165RandomAcceFile.............................................. .. (166)思考作业............................................................. ............................................................... ...166上机作业............................................................. ............................................................... ...166提高课外作业............................................................. ..........................................................166第九章多线程技术............................................................. . (167)念............................................................. ............................................................... (167)程序............................................................. ............................................................... ...167进程............................................................. ............................................................... ...167线程............................................................. ............................................................... ...167线程和进程的区别............................................................. ..........................................167进程与程序的区别............................................................. ..........................................168JAVA中如何实现多线程(重点!!)........................................................ .. (168)通过继承Thread类实现多线程.............................................................. ....................168通过Runnable接口实现多线程.............................................................. ...................169线程状态和leep/yield/join/top/detroy方法.............................................................. (170)态............................................................. ..........................................................170就绪状态............................................................. ..........................................................170运行状态............................................................. ..........................................................170死亡状态............................................................. ..........................................................170终止线程的典型方法(重要!!!)...................................................... .......................171阻塞状态(leep/yield/join方法)............................................................ ......................171线程基本信息和优先级别............................................................. ......................................173线程同步和死锁问题............................................................. ..............................................175死锁及解决方案............................................................. ......................................................179生产者/消费者模式............................................................. ................................................181线程回顾总结............................................................. ..........................................................184任务调度(补充内容,了解即可!).......................................................... ..........................184思考作业............................................................. ..................................................................185上机作业............................................................. ............................................................... ...185第十章网络编程............................................................. .. (1)867北京尚学堂科技JAVA基础课程基本概念............................................................. ............................................................... (186)什么是计算机网络............................................................. ..........................................186计算机网络的主要功能............................................................. ..................................186什么是网络通信协议............................................................. ......................................186网络通信接口............................................................. ..................................................186为什么要分层............................................................. ..................................................186通信协议的分层规定............................................................. ......................................186数据封装............................................................. ..........................................................188数据拆封.......................................................................................................................188IP ............................................................... ............................................................... .. (188)端口............................................................. ............................................................... ...188URL...................................................... ............................................................... .. (189)TCP协议和UDP协议............................................................. (189)区别.............................................................. ................................................................ .189TCP协议.............................................................. ..........................................................189UDP 协议.............................................................. .........................................................190JAVA 网络编程.............................................................. .. (190)InetAddre...................................................... . (19)0InetSocketAddre............................................... .........................................................191URL 类............................................................. .. (1)91基于TCP协议的SOCKET编程和通信............................................................. ...........193UDP通讯的实现............................................................. ..............................................201思考作业............................................................. ............................................................... ...203上机作业(分组完成,3人一组,周末完成)........................................................... .....204第十一章JAVA多媒体编程............................................................. . (205)字体............................................................. ............................................................... .. (205)字体示例和效果............................................................. ..............................................205颜色............................................................. ............................................................... .. (206)颜色编程示例............................................................. ..................................................206图形绘制............................................................. ............................................................... (206)。
Java基础语法
今日内容介绍
方法
第1章方法
1.1方法概述
在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。
如:小明同学在路边准备坐车来学校学习。
这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢可采用坐公交车或坐出租车的方式来学校,那么,这种解决某件事情的办法,我们就称为方法。
在java中,方法就是用来完成解决某件事情或实现某个功能的办法。
方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,控制输入或计算数值。
我们可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法。
方法,一般都有一个返回值,用来作为事情的处理结果。
1.2方法的语法格式
在Java中,声明一个方法的具体语法格式如下:
修饰符返回值类型方法名(参数类型参数名1,参数类型参数名2,......){
执行语句
………
return 返回值;
}
对于上面的语法格式中具体说明如下:
修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最
终修饰符final等,这些修饰符在后面的学习过程中会逐步介绍
返回值类型:用于限定方法返回值的数据类型
参数类型:用于限定调用方法时传入参数的数据类型
参数名:是一个变量,用于接收调用方法时传入的数据
return关键字:用于结束方法以及返回方法指定类型的值
返回值:被return语句返回的值,该值会返回给调用者
需要特别注意的是,方法中的“参数类型参数名1,参数类型参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。
方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。
接下来通过一个案例来演示方法的定义与使用,如下图所示。
public class MethodDemo01 {
public static void main(String[] args) {
int area = getArea(3, 5);
储全班同学名字
2.打印全班同学每一个人的名字
3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学名字
该案例须有以下3个内容:
存储所有同学姓名
总览全班同学姓名
随机点名其中一人,打印到控`制台
随机点名器明确地分为了三个功能。
如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。
而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。
此时,我们可以使用数组解决多个数据的存储问题。
1.3实现代码步骤
编写文件,完成程序的编写。
main方法中调用三个独立方法
public static void main(String[] args) {
"--------随机点名器--------");
储全班同学名字
*/
addStudentName(students);
/*
* 2.打印全班同学每一个人的名字
*/
printStudentName(students);
/*
* 3.获取随机点名到的学生姓名,并打印
*/
String randomName = randomStudentName(students);
"被点到名的同学是 :" + randomName);
}
1.存储所有同学姓名
/**
* 1.存储全班同学名字
* 创建一个存储多个同学名字的容器(数组)
* 键盘输入每个同学的名字,存储到容器中(数组)
*/
public static void addStudentName(String[] students) {
取随机点到的学生姓名
/**
* 3.在班级总人数范围内,随机产生一个随机数,返回随机数位置上的学生姓名
*/
public static String randomStudentName(String[] students) {
extInt;
看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号:
每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。
选择“1.查看库存清单”功能,则控制台打印库存清单
选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新
选择“3.退出”功能,则退出库存管理,程序结束
1.4实现代码步骤
编写代码Demo库存管理.java,完成如下功能:
功能菜单
/**
* 库存管理功能菜单
* @return管理员键盘输入的功能操作序号
*/
public static int chooseFunction() {
"-------------库存管理------------");
"1.查看库存清单");
"2.修改商品库存数量");
"3.退出");
"请输入要执行的操作序号:");
extInt();
}
}
上述方法用来完成修改商品库存数量功能,2个方法参数用来指定所要修改的商品与库存数退出功能
/**
* 退出
*/
public static void exit(){
"----------------退出---------------");
"您已退出系统");
}
上述方法用来完成退出程序的功能
第2章总结
2.1知识点总结
方法
格式:
修饰符返回值类型方法名(参数类型参数名1, 参数类型参数名2, ...) {方法体;
return 返回值;
}
方法使用的注意事项:
1,方法不调用,自己不执行
2,方法中不能定义方法,但是,方法中可以调用方法
3, 方法定义的位置在类中,其他方法的外面
4, 如果方法没有明确的返回值类型,使用'空'类型, void表示
5,void只能在方法返回值类型位置使用,不能作为普通的数据类型使用
6, 如果方法返回值类型为void类型,可以省略 return ;
方法调用方式:
有明确返回值类型的方法调用方式:
1,单独调用
2,输出调用
3,赋值调用
没有明确返回值类型的方法调用方式:
1,单独调用
方法重载:
方法重载,在同一个类中,出现了多个同名的方法,他们的参数列表不同 (参数列表的个数不同,参数列表的数据类型不同,参数列表的顺序不同)。
方法重载特点:
与方法的返回值类型无关,与方法的参数名无关,只看方法名与参数列表;
方法重载,是通过JVM来完成同名方法的调用的,通过参数列表来决定调用的是哪一个方法。