面向对象程序设计教案.docx

上传人:b****7 文档编号:25224928 上传时间:2023-06-06 格式:DOCX 页数:16 大小:681.89KB
下载 相关 举报
面向对象程序设计教案.docx_第1页
第1页 / 共16页
面向对象程序设计教案.docx_第2页
第2页 / 共16页
面向对象程序设计教案.docx_第3页
第3页 / 共16页
面向对象程序设计教案.docx_第4页
第4页 / 共16页
面向对象程序设计教案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

面向对象程序设计教案.docx

《面向对象程序设计教案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计教案.docx(16页珍藏版)》请在冰豆网上搜索。

面向对象程序设计教案.docx

面向对象程序设计教案

1课程内容:

JAVA重要基础知识

推荐教材:

《面向对象程序设计》(第3版),叶乃文等编著,清华大学出版社

推荐参考书:

《ThinkinginJAVA》(中文版书名:

JAVA编程思想)网上可以下载到电子书

2知识点:

3具体内容

3.1JAVA的发展历史

Java是一门完整的编程语言,包括自己的语法和各种底层的支持。

SUN:

斯坦福网络

1991年SUN公司为了竞争一个叫做GREEN的项目,就是利用各种硬件设备,控制家电的项目,他的技术人员本来打算用C++来开发的,但是C++本身比较复杂,所以他们又自己开发一个新的平台——Oak(橡树),但是,很遗憾,这个语言没有竞标成功,那么这门语言就意味着死亡。

后来,Sun公司的开发人员又开始跟网景学习了浏览器技术,开发了一款浏览器叫做HOTJAVA,在1995年的时候将Oak重新更名为Java。

到了1998年的时候,SUN正式将JAVA更名为JAVA2,主要是JAVA2中增加了一系列的轻量级的开发包,这些开发包主要都是用在图形界面的开发上,这些个图形界面统一称为JFC,这个时代很快就过去了。

现在的开发已经基本上不用JFC了,主要是拜微软所赐。

微软的.net战略,它开发出了J#,实际上就是将JAVA语言进行了改写,他想把JAVA做成VB的风格,但是这样一来呢,就把JAVA中各种底层API改写掉了。

这样微软构成侵权,SUN就把微软告上方法庭,微软公司进行赔付,所以在WindowsXP之后就不再支持JVM加了,这样SUN又告了微软,当然又得赔钱。

后来微软为了继续发展他的.net战略,根据J#重新进行了改革,新开发出了一套C#语言,所以现在看到的.net主推平台就是ASP.NET+C#了。

SUN其实对JAVA的期望还是在于嵌入式系统的开发上,但现在的嵌入式系统基本都是在做游戏开发。

JAVA的主要分支方向:

●J2SE:

是Java的标准版本,提供基本的底层支持,图形界面等等。

⏹在2005年Java十周年庆祝大会上,正式更名为JAVASE。

●J2EE:

是Java的一个主要方向,主要用于构建企业的应用系统。

⏹在2005年Java十周年庆祝大会上,正式更名为JAVAEE。

●J2ME:

是Java的微型版本,主要就是用于嵌入式系统的开发,现在主要就是做游戏的

⏹在2005年Java十周年庆祝大会上,正式更名为JAVAME。

JAVA的最大特点是面向对象。

面向对象的概念最早是在70年代的时候由Smalltalk语言提出来的,Smalltalk是IBM开发出来的语言。

JAVA语言是属于编译型和解释型的语言,这意味着,所有的JAVA源程序代码,需要先编译,编译之后再在电脑上进行解释,所以JAVA的语言执行分为两步。

实际上JAVA的基础语法是和C语言的格式是完全一样的。

在JAVA中不存在指针的概念,但是存在引用的概念,实际上传递的也是内存地址。

JAVA的安全性也是最高的,因为所有的操作都是以字节码(class)文件的形式保存的。

JAVA是由C++开发出来的,它的最大特点是跨平台。

JAVA的所有程序都是在一台虚拟的电脑上执行的,就是JVM。

Source.Java经过编译之后形成Sourse.class执行。

JAVA的运行中,会根据不同的操作系统提供一个JVM的版本支持,所有的程序执行都知识找到JVM,由JVM去直接适应操作系统,这样一来,所有的程序就可以在任意的操作系统上执行。

所有的代码如果可以由A直接到B,这样的代码肯定是不好用的,中间加入过渡端

A——C——B

3.2JAVA基础部分重要知识

3.2.1两个环境属性

JDK安装完成之后,实际上所有的命令都在C:

\ProgramFiles\Java\jdk1.7.0_15\bin目录下,但是所有的JAVA程序的编译和执行都必须在命令行窗口中完成,为了让Windows知道bin目录下有执行的命令,就需要配置path属性。

范例:

编写一个简单的Java程序。

程序编写完成之后,要用javac和java命令进行编译和执行:

●编译:

javac类名称.java

●执行:

java类

publicclassHelloWorld{//声明一个类,类名称的命名规范:

所有单词的首字母必须大写

publicstaticvoidmain(Stringargs[]){//主方法

System.out.print("HelloWorld!

!

!

");//系统输出,在屏幕上打印

}

}

 

刚才我们正常执行程序,在执行HelloWorld类的时候在testjava目录下,生成了HelloWorld的class文件。

3.2.2publicclass和class的区别

在编写类的时候可以使用两种方法来定义类:

●publicclass类名称

●class类名称

如果一个类声明的时候使用了publicclass进行声明,则类名称必须与文件名称完全一致。

publicclassHelloDemo{//声明一个类,类名称的命名规范:

所有单词的首字母必须大写

publicstaticvoidmain(Stringargs[]){//主方法

System.out.print("HelloWorld!

!

!

");//系统输出,在屏幕上打印

}

}

使用class进行声明的时候,可以编译执行。

 

此类使用了publicclass进行声明,类名称是HelloDemo,但是文件名称是HelloWorld.java,所以此时编译将产生以下问题:

以上的错误信息表示:

因为使用的是publicclass声明,所以类名称应该与文件名保持一致,也就是说,我们应该用HelloDemo.java来为文件命名。

如果类的声明采用了class,则类名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的类名称。

在一个*.java的文件中,只能有一个publicclass的声明,但是允许有多个class的声明。

3.2.3一个小的注意事项

System.out.print()属于完成屏幕打印的功能,如果后面加上一个“ln”则表示输出之后换行。

publicclassHelloWorld{//声明一个类,类名称的命名规范:

所有单词的首字母必须大写

publicstaticvoidmain(Stringargs[]){//主方法

System.out.println("HelloWorld!

!

!

");

System.out.println("HelloWorld!

!

!

");//系统输出,在屏幕上打印

}

}

 

Java中类名称、变量名等都有标识符的规范:

由字母、数字、下划线、$(以后在文件名称上看到有$符号的,则在程序中一律使用“.”来表示)组成,其中不能以数字开头,不能是java中的保留字。

关于保留字,java中一共存在49个保留字,关于保留字有一些说明:

●JAVA产生的时候就预留了两个保留字,goto,const

●JDK1.4时增加了assert保留字

●JDK1.5时增加了enum保留字

●在java中以下的内容不属于保留字,但是是有意义的名称:

ture,false,null

所有的保留字大家没必要都记住。

3.2.4数据类型的划分

Java中的数据类型主要划分为两类:

●基本数据类型

⏹数值型

◆整数:

byte,short,int,long

◆小数:

float,double

⏹字符型:

char

⏹布尔型:

boolean,取值只能是true或false

●引用数据类型:

实际上就类似于C语言的指针操作,传递的是内存的空间地址。

⏹数组

⏹类

⏹接口

3.2.5数字的操作中会存在数据的溢出

任何一种数据类型都有其最大的取值,如果已经是最大的值,则加1后变成最小值,最小值减1之后变成最大值。

publicclassSimpleDemo{//声明一个类,类名称的命名规范:

所有单词的首字母大写

publicstaticvoidmain(Stringargs[]){//主方法

intmax=Integer.MAX_VALUE;//求出整型的最大值

intmin=Integer.MIN_VALUE;//求出整型的最小值

System.out.println("int的最大值:

"+max);

System.out.println("int的最大值+1:

"+(max+1));

System.out.println("int的最小值:

"+min);

System.out.println("int的最小值-1:

"+(min-1));

}

}

 

3.2.6数据的默认类型

在java中,一个整型数字的默认类型是int型

一个小数的默认类型是double型。

Double的取值要比float要打,所以会出现丢失精度的问题,此时,可以用以下方式来解决:

publicclassSimpleDemo2{//声明一个类,类名称的命名规范:

所有单词的首字母必须大写

publicstaticvoidmain(Stringargs[]){//主方法

doublex=30.3;//声明小数

floaty=30.3f;//声明小数

}

}

 

3.2.7数据类型的转换

在Java中存在以下的数据类型的转换操作:

●Char——int互相转换,转换成ASCII码;

publicclassSimpleDemo03{//声明一个类,类名称的命名规范:

所有单词的首字母大写

publicstaticvoidmain(Stringargs[]){//主方法

charc1='a';//使用”'“括起来表示字符

intx1=c1;//将char变为int型

x1++;//自增

charc2=(char)x1;//将int-->char,进行强制转换

System.out.println(c2);

}

};

 

●byte—short—int—long

●int—float—double,double的数据长度是最大的,可以装下全宇宙所有的数据。

●但是转换的时候有一点需要特别注意:

如果我们碰到的是字符串,则所有类型都向字符串转换。

publicclassSimpleDemo04{//声明一个类,类名称的命名规范:

所有单词的首字母大写

publicstaticvoidmain(Stringargs[]){//主方法

Stringstr="hello";//表示字符串

inti=10;

System.out.println(str+(i+20));

}

};

 

此时并没有执行加法操作,而是将全部的数字变成字符串,使用“+”完成字符串的连接操作。

System.out.println(1l+11);

3.3循环控制

任何语言的循环控制的基本代码都是一致的。

分支结构:

if、if…elseif….else

循环结构:

while、do…while、for

循环控制:

break、continue

3.4数组

数组是属于引用型的数据类型,使用的时候需要开辟内存空间的。

1.声明时直接开辟内存空间

数据类型数组名称[]=new数据类型[长度];如:

inti[]=newint[10];

数据类型[]数组名称=new数据类型[长度];

2.分步声明

关键字new只要一出现,则肯定表示数据类型是引用的数据类型,要进行堆-栈空间的开辟。

范例:

声明一个数组

 

开辟的内容都用默认值表示,如果想要为数组的元素赋值,则需要通过下面的方式来进行访问:

 

 

开辟栈内存空间

Intscore[]=null;

开辟栈内存空间的意义在于,就相当于表示一个人的名字

开辟堆内存空间

score=newint[3];

数组只有开辟了堆内存空间之后才可以使用。

之前的代码数组的操作属于动态初始化,因为我们在开辟数组的时候并不知道数组中的具体内容是多少,而只是采用了默认值表示,所以,我们还可以采用另一种方式叫做静态初始化的操作:

数据类型数组名称[]={若干取值,…};

范例:

使用静态初始化完成

 

publicclassArrayDemo02{

publicstaticvoidmain(Stringargs[]){

inti[]={1,2,3,4,6,7};//此时属于静态初始化

System.out.print("数组开辟之后的内容:

");

for(intx=0;x

System.out.print(i[x]+"、");

}

}

};

 

之前的数组都属于一维数组。

动态初始化:

数据类型数组名[][]=new数据类型[行的个数][列的个数]

静态初始化

数据类型数组名[][]={{11,22,33},{21,22,23}};

范例:

二维数组

publicclassArrayDemo03{

publicstaticvoidmain(Stringargs[]){

inti[][]={{1,2},{2,3,4},{3,4,5,6,7}};//此时属于静态初始化

System.out.print("数组开辟之后的内容:

");

for(intx=0;x

for(inty=0;y

System.out.print(i[x][y]+"、");

}

System.out.println("");

}

}

};

 

3.5方法

方法就是一段可以重复调用的代码段,但是,现在的方法是使用主方法直接调用的,所以,定义格式为:

publicstatic返回值类型|void方法名称([参数列表]){

[return返回内容;]

}

范例:

publicclassMethodDemo01{

publicstaticvoidmain(Stringargs[]){

print();//调用方法

print();//调用方法

print();//调用方法

print();//调用方法

}

publicstaticvoidprint(){

System.out.println("HelloWorld!

!

!

");

}

};

以上的代码在类中定义了一个print()方法,之后我们在主方法中连续重复调用了四次,所以输出了四条语句。

Void表示这个方法是没有任何的返回值类型,不需要使用return语句。

(判断题)

范例:

完成一个加法操作。

publicclassMethodDemo02{

publicstaticvoidmain(Stringargs[]){

System.out.println(add(10,20));

System.out.println(add(20,20));

}

publicstaticintadd(intx,inty){

inttemp=x+y;

returntemp;

}

};

在方法的使用中,还存在一种概念,叫方法的重载。

重载:

指的是方法名称相同,但是参数的类型或者个数可以不同。

(判断题)

publicclassMethodDemo03{

publicstaticvoidmain(Stringargs[]){

System.out.println(add(10,20));

System.out.println(add(20,20,10));

System.out.println(add(20.01f,20.05f));

}

publicstaticintadd(intx,inty){

inttemp=x+y;

returntemp;

}

publicstaticintadd(intx,inty,intz){

inttemp=x+y+z;

returntemp;

}

publicstaticfloatadd(floatx,floaty){

floattemp=x+y;

returntemp;

}

};

实际上,重载的概念大家一直在接触,System.out.print()可以接收任意类型的参数,所以此方法也属于重载,但在使用重载的时候一定要注意,重载看的不是方法的返回值类型,而是参数的类型或个数。

在方法的使用过程中还可以使用return来结束一个方法的操作,当执行到return的时候会直接返回到方法的调用处继续执行。

 

publicclassMethodDemo04

{

publicstaticvoidmain(Stringargs[]){

fun(10);

fun(3);

}

publicstaticvoidfun(intx){

System.out.println("进入方法。

");

if(x==3)

{

return;

}

System.out.println("结束方法。

");

}

}

 

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

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1