java课堂讲义文档格式.docx

上传人:b****6 文档编号:22136741 上传时间:2023-02-02 格式:DOCX 页数:40 大小:29.76KB
下载 相关 举报
java课堂讲义文档格式.docx_第1页
第1页 / 共40页
java课堂讲义文档格式.docx_第2页
第2页 / 共40页
java课堂讲义文档格式.docx_第3页
第3页 / 共40页
java课堂讲义文档格式.docx_第4页
第4页 / 共40页
java课堂讲义文档格式.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

java课堂讲义文档格式.docx

《java课堂讲义文档格式.docx》由会员分享,可在线阅读,更多相关《java课堂讲义文档格式.docx(40页珍藏版)》请在冰豆网上搜索。

java课堂讲义文档格式.docx

行为:

吃睡玩想===========>

成员方法=========>

3、对象:

是类的一个实例,它属于一个类

创建一个对象做了几件事情?

Strings1="

hello"

;

Strings2=newString("

);

创建了几个对象?

4、java的命名规则见名知意

类名首字母大写classPersonClock

成员变量/方法小写intheight;

getName();

setName();

驼峰命名法

常量大写intWIDTH=300;

5、一个.java文件就是一个编译单元.一个编译单元里面,只能有一个public修饰的类,文件名必须和public修饰的类的类名相同.但,类的功能要单一化.

6、java的基本数据类型

类型字节数默认值封装类

byte10java.lang.Byte

char2'

\u0000'

Character

int40Integer

float40Float

double80Double

boolean1falseBoolean

1byte=8bit;

floatf=2.3f;

2.3f===>

float

2.3===>

double

doubled=2.3f;

floatf=2.3;

floatf=(float)2.3;

低精度向高精度转化,会自动类型转化(向上造型)

高精度向低精度转化,要强制类型转化(向下造型)

注:

java中的boolean只有true和false,不像C中0表示假,非0表示为真

while(true){}

while(1==1){}

String定义字符串它不是基本数据类型是类类型默认值null

7、标识符:

由字母、数字、下划线和$符号组成,但不能以数字开头的字符串。

不能是保留字。

ifcasewhileelse....

$ad34_sdf324325_sdfgotoconst

java中有哪些关键字保留字

8、方法的定义:

修饰符返回值类型方法名(参数表){

方法体

}

voidf(){

publicintgetNumber(Strings,inti){

return2;

9、运算符:

算术%++--5%22%5-2%52%-5-2%-52.3%5

y+=x++;

y=y+x,x=x+1;

先运算再自加

y+=++x;

x=x+1,y=y+x;

先自加再运算

关系>

<

==!

=

赋值=+=-+%=/=

逻辑&

&

||!

&

|

假&

真真&

假x=3;

3>

4&

x++>

1

真||假假||真x=3;

2||x++>

条件表达式1?

表达式2:

表达式3

if(xxx){

}else{

}

10、java中的数组:

和C中的不一样,C中的数组是一个简单的内存块.

是对象,也是引用类型.同样是new关键字

inta[]={1,2,3,4,5};

int[]a=newint[6];

a[0]=1;

a[1]=2;

a[6]errorArrayIndexOutofBoundsException数组越界异常

int[]a=newint[]{1,2,3,4,5};

int[]a={1,2,3,4,5};

String[]s=newString[5];

String[]s1=newString[]{"

abc"

"

df"

gf"

};

s1[1].concat(s[2]).toUpperCase();

Animal[]an={newDog(),newPerson(),newPig()};

for-each

下标法

编译时报错,一定是语法错误;

运行时报错,一定是异常;

11、java的流程控制语句

if(表达式){}ture/false

if(){

}else{

if(){

}elseif(){

switch(变量)只能是以下类型bytecharshortint

case1:

xxbreak;

case2:

default:

xx

while(表达式){}for循环for-each循环do{表达式}while();

continue;

break;

break和continue语句

break语句的功能:

用于从循环体内跳出循环体,即提前结束循环。

例:

计算r=1到r=10的圆面积,当面积大于100时结束循环,

使用要点:

break只能用在循环语句和switch语句中。

功能:

结束本次循环,接着判定下一次是否执行循环。

continue与break的区别:

continue直结束本此循环,而break终止本层循环.

例:

把100~200之间的不能被3整除的数输出.

作业1:

1、jdk环境变量的配置,dos命令的熟练运用

2、定义一个矩形类Rectangle,声明两个方法分别能求得其周长和面积

3、定义一个Watch类,声明两个方法分别能设置时间和显示时间

4、String了解方法

Stringstr="

2010-5-210:

53:

30"

=======>

2010524105330

2013-12-0217:

08:

30

Lesson2

1、值传递和地址传递

2、构造函数:

<

1.函数名与类名相同

2.没有返回值类型,从某种意义上来讲,返回的是这个类的对象

3.我们在创建对象的时候调用构造函数,用new关键字来调用Rectrec=newRect();

4.作用:

创建和初始化该类的对象,给成员变量赋初值

5.系统提供给我们一个默认的无参构造函数.如果我们定义了新的构造函数,默认的构造函数就不存在了.

6.我们可以用this这个关键字来调用兄弟构造函数,此句必须放在第一句.

3、this的3用法:

4、String类中方法的使用以及String、StringBuffer和StringBuilder的区别:

String定义的对象是不可修改的。

StringBuffer同步效率低

StringBuilder不同步效率高

StringBuffersb=newStringBuffer("

StringBuffer向String转化

方法1:

hehe"

Stringstr=sb.toString();

方法2:

Stringstr1=newString(sb);

5、基本数据类型的封装类的运用:

Integer类中的两个方法

parseInt()toString()

DoubleFloatCharacterBoolean

整形==3种===>

字符串===2种==>

整形IntegerString

6、命令行参数:

命令行参数是程序执行中紧跟在程序名后面的信息。

javaTest5helloeveryone!

它们作为字符串存储在传递给main()的String数组中,所有的命令行参数都是以字符串形式传递的。

静态加载(缺点):

在编译的时候就要把这个类对象加载进来,如果这个类不存在,就要报错.

7、关键字:

packageimport

包:

相当于目录(文件夹)

package打包范围大--->

小com.gem.test;

import导包java.lang包下的类是不需要导包的

同时使用时应注意顺序:

对于.java文件而言,包名就是包名;

对其进行编译,一定要在当前包下。

对于.class文件而言,包名是.class文件的前缀名,运行时,要退出当前包。

面向对象四大特性:

多态继承封装抽象

8、方法重载(多态性的体现)overload

在一个类中,存在着这样一组方法:

方法名相同,参数表不同(类型不同,个数不同,顺序不同),与返回值类型无关

9、构造函数重载(多态性的体现)

10、四大访问修饰符(publicprotectedprivatedefault)

public公共的同一包不同包

protected受保护的同一包不同包(子类)

default缺省的只能在同一包下相互访问

private私有的只能在类的内部被访问

定义类的修饰符:

publicdefault

在一个类中有哪些元素

成员变量方法构造函数

作业2:

1、利用String类中的方法,将一个字符串倒叙输出(熟练使用String类中的方法)

2、从键盘输入两个值,求得其最大公约数、最小公倍数

3、定义一个数组,数组的大小是一个随机数,数组中的元素也都是随机数

4、随机产生一个随机数,然后接受键盘的输入值,猜大猜小,直到猜对为止

Math.random();

Scannerin=newScanner(System.in);

(练习的代码打包在lesson4里面)

Lesson3:

1、static关键字

(1、来由:

静态的东西是大家共有的,且只被加载(初始化)一次.

静态的东西是属于类的,所以可以用类名直接访问.

代码举例1:

publicclassTest1{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

f();

Test1test=newTest1();

test.g();

publicstaticvoidf(){

System.out.println("

publicvoidg(){

world"

(2、静态的方法只可以访问静态成员(变量or方法),不能访问非静态成员;

非静态的方法可以访问静态成员

知识点代码举例1:

classStudent{

Stringname;

intage;

staticStringroom="

G01"

publicvoidstudy(){

stduy..."

sleep();

publicstaticvoidsleep(){

System.out.println(room);

//study();

error

publicclassTest2{

Studenttom=newStudent();

tom.study();

System.out.println(tom.name);

//tom.sleep();

不提倡

Student.sleep();

//Math.max(3,66);

System.out.println(Student.room);

(3、类的初始化顺序:

先初始化静态成员===》再调用构造函数来初始化非静态成员(非静态成员初始化执行完毕之后,构造函数才能执行结束)

classA{

inti;

{

i=1;

aaa"

static{

bbb"

A(){

ccc"

publicclassTest3{

newA();

(4、..........静态的方法中不能以任何方式引用this或super关键字

(5、*当构造函数私有时,我们如何在类的外部创建该类的实例(单例模式)

单例模式代码举例:

classSingleTon{

privatestaticSingleTonst;

//私有的构造函数

privateSingleTon(){}

publicvoidshow(){}

//synchronized同步效率低安全的

//静态同步的方法,返回该类的对象

publicstaticsynchronizedSingleTongetInstance(){

//SingleTonst1=newSingleTon();

if(st==null){

st=newSingleTon();

}

returnst;

publicclassTest13{

//SingleTonst2=newSingleTon();

2、继承(extends)

继承:

是OOP(ObjectOrientedProgramming)编程技术的一块基石。

它意味着基于一个已经定义好的类创建一个新的类,新的类将以某种方式扩展原有的类。

体现的是is-a的关系。

OOAanalyseOODdesign

在OOP的编程中,继承意味着新的类来自父类,且每个类都有一个直接的父类。

父类或者显示定义的,或者隐式规定的,如果没有显示地定义父类,那隐含的父类就是Object类。

好处:

代码的可重用性缺点:

依赖性太强(低藕合高内聚)

继承:

就是一个类得到另一个类所有属性的过程。

私有成员有没有被继承过来?

有!

构造函数有没有被继承过来?

为什么?

没有!

类,继承都是单继承why?

classAnimal{

privateStringfood="

KFC"

Animal(){}

publicvoideat(){

System.out.println(this.food);

publicvoidsleep(){}

classPersonextendsAnimal{

Person(){}

publicvoidthink(){}

publicvoidspeak(){}

publicclassTest5{

Animalaa=newAnimal();

aa.eat();

aa.sleep();

Personpp=newPerson();

pp.eat();

pp.sleep();

pp.think();

pp.speak();

//System.out.println(pp.food);

预习:

classAextendsObject

{

a.equals();

a.toString();

3、super关键字的3种用法(this对照起来记忆)

(1)调用父类无参构造函数;

(2)调用父类中的成员方法;

(3)访问父类的成员属性;

classVehicle{

Stringname="

Vehicle(){

super();

Vehicle(inti){

this();

//调用兄弟构造函数

--------"

publicvoidmove(){

System.out.println(this.name);

publicvoidf(){

this.move();

//move();

classCarextendsVehicle{

kfc"

Car(){

//作用:

调用父类的无参构造函数

Car(inti){

super(i);

++++++++"

publicvoiddrive(){

//访问本类中的name属性

System.out.println(super.name);

//访问父类中的name属性

super.move();

调用父类中的成员方法

publicclassTest6{

Carcc=newCar(3);

cc.drive();

知识点代码举例2:

classFruit{

intprice;

//publicFruit(){}

publicFruit(Stringname,intprice){

this.name=name;

this.price=price;

classAppleextendsFruit{

Apple(Stringname,intprice){

super(name,price);

publicclassTest7{

Appleaa=newApple("

red"

5);

System.out.println(aa.name+"

"

+aa.price);

Lesson4:

1、了解Object类中的equals()和toString()

String、Integer类中的equals()

父类:

基类

子类:

派生类

Object类是所有类的父类.

equals()比较的是什么?

?

输出一个对象:

类名@内存地址,就相当于输出这个对象toString()值;

知识点的代码举例1:

classC{

inti=1;

@Override

publicStringtoString(){

return"

publicclassTest8{

Cc1=newC();

Cc2=newC();

//比较的是两个对象的地址

System.out.println(c1==c2);

//调用的是Object类中的equals(),比较的是两个对象的地址

System.out.println(c1.equals(c2));

//输出一个对象,就是输出该对象的toString()的返回值

System.out.println(c1);

System.out.println(c1.toString());

知识点的代码举例2:

publicclassTest9{

Strings2="

System.out.println(s1==s2);

Strings3=newString("

System.out.println(s1==s3);

//String类中的equals()比较的是两个对象所指的内容

System.out.println(s1.equals(s2));

System.out.prin

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

当前位置:首页 > 表格模板 > 合同协议

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

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