java的学习入门到精通学习笔记2文档格式.docx

上传人:b****3 文档编号:16348054 上传时间:2022-11-23 格式:DOCX 页数:20 大小:21.80KB
下载 相关 举报
java的学习入门到精通学习笔记2文档格式.docx_第1页
第1页 / 共20页
java的学习入门到精通学习笔记2文档格式.docx_第2页
第2页 / 共20页
java的学习入门到精通学习笔记2文档格式.docx_第3页
第3页 / 共20页
java的学习入门到精通学习笔记2文档格式.docx_第4页
第4页 / 共20页
java的学习入门到精通学习笔记2文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

java的学习入门到精通学习笔记2文档格式.docx

《java的学习入门到精通学习笔记2文档格式.docx》由会员分享,可在线阅读,更多相关《java的学习入门到精通学习笔记2文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

java的学习入门到精通学习笔记2文档格式.docx

java语言[面向对象]

类和对象的关系

把猫的特性提取出来-->

猫类-->

对象(实例)

-->

...

注意:

从猫类到对象,目前有几种说法:

1、创建一个对象;

2、实例化一个对象;

3、对类实例化...以后大家听到这些说法,不要模糊。

(对象就是实例,实例就是对象)java最大的特点就是面向对象。

//定义猫类

publicclassDemo105{

//创建一个猫对象

Catcat1=newCat();

//Cat是定义的一个数据类型

//Catcat1;

//cat1=newCat();

//等同于Catcat1=newCat();

//访问属性的对象名.属性名字

cat1.age=3;

cat1.name="

cat1.color="

//创建第二只猫

Catcat2=newCat();

cat2.age=100;

cat2.name="

cat2.color="

//java中如何定义一个类?

[类名的首写字母大写]可根据程序的需要定义类

classCat{

//下面的就是类的成员变量/属性

intagr;

Stringname;

Stringcolor;

MastermyMaster;

//引用类型,比如建个主人类

classMaster{

intage;

Stringaddress;

类和对象的区别和联系

1、类是抽象的,概念的,代表一类事物,比如人类,猫类..

2、对象是具体的,实际的,代表一个具体事物

3、类对象的模板,对象是类的一个个体,实例

类--如何定义类

一个全面的类定义比较复杂,如:

package包名;

class类名extends父类implements

接口名{

成员变量;

构造方法;

成员方法;

要透彻的掌握类,必须要了解类的构成

class类名{---->

待定...

类--类的成员变量

成员变量是类的一个组成部分,一般是基本数据类型,也可是引用类型。

比如我们前面定义猫类的intage就是成员变量。

对象--如何创建对象

创建一个对象有两种方法

1、先声明再创建

1、对象声明:

类名对象名

2、对象创建:

对象名=new类名()

2、一步到位法

类名对象名=new类名()

对象--如何访问(使用)对象的成员变量

对象名.变量名;

//简单先这样理解,以后加下控制符此表达就不准确了。

***对象总是存在内存中的

一个小思考题[Demo.105.java]

为了让大家加深印象,我们定义一个人类(Person)(包括名字、年龄)。

用一步到位法去创建一个对象

我们看看下面一段代码:

System.out.printlin(b.age);

Persona=newPerson();

→请问:

b.age究竟是多少?

a.age=10;

a.name="

小明"

Personb;

b=a;

一个小思考题[Demo106.java]

在明白对象是如何在内存中存在后,请大家再看看下面的思考题,请问会输出什么信息?

Person1a=newPerson1();

Person1b;

System.out.println(b.name);

//输出“小明”

b.age=200;

System.out.println(a.age);

//输出a.age为200

*****重点也是难点

类--成员方法的初步介绍

在某些情况下,我们要需要定义成员方法。

比如人类:

除了有一些属性外(成员变量表示的年龄、姓名...),我们人类还有一些行为比如:

可以说话、跑步..,通过学习,我们人类还可以做算术题。

这时就要用成员方法才能完成。

现在要求对Person类完善:

1、添加speak成员方法,输入出:

我是一个好人

2、添加jisuan成员方法,可以计算从1+..+1000的结果

3、修改jisuan成员方法,该方法可以接收一个数n,计算从1+..+n的结果

4、添加add成员方法,可以计算两个数的和

 

类--类的成员方法(成员函数)定义

成员方法也叫成员函数,这里希望大家不要被两个名词搞晕了。

public返回数据类型方法名(参数列表)

{

语句;

//方法(函数)主体

1、参数列表:

表示成员函数输入

2、数据类型(返回类型):

表示成员函数输出

3、函数主体:

表示为了实现某一功能代码块

//类的调用及方法调用[Demo108.java]

publicclassDemo108{

Personp1=newPerson();

p1.speak();

//调用speak方法

p1.jiSuan();

//调用计算方法

p1.jiSuan(200);

//调用可以传入参数的计算方法

p1.add(12,10);

//调用两个数的和

intres=p1.add2(23,34);

//调用两个数的和并返回值到res中

System.out.println("

res返回值是:

+res);

num1+num2+num3="

+p1.add3(2,2.3f,4.5f));

//返回类型一定要一致否则报错。

//定义名字的几个方法:

//1、驼峰法如myCry;

2、下划线法my_cry

//方法名在有不同参数的情况下可以使用同一个方法名,即有参数和没参数的方法可以同名

classPerson{//请注意类名首写字母应为大写如Person为类名

//1、可以输出我是好人方法

publicvoidspeak(){//请注意方法名的首写字母应为小写如speak为方法名

System.out.println("

我是一个好人"

//2、可以计算1+..+1000的方法

publicvoidjiSuan(){

intresult=0;

for(inti=1;

i<

=1000;

i++){

result=result+i;

1+..+1000结果是"

+result);

//3、带参数的成员方法,可以输入n值并计算1+..+n

publicvoidjiSuan(intn){

=n;

result+=i;

1+..+n结果是"

//4、计算两个数的和

publicvoidadd(intnum1,intnum2){

//与下面一句等同于returnnum1+num2;

result=num1+num2;

num1+num2="

//5、计算两个数的和,并将结果返回给主调(调用它的)函数

//注意:

返回类型和返回结果的类型要一致

在调用某个成员方法的时候,给出的具体数值的个数

//和类型要相匹配。

publicintadd2(intnum1,intnum2){

returnnum1+num2;

//6、计算两个float数的和,并将结果返给主调函数

publicfloatadd3(intnum1,floatnum2,floatnum3){

returnnum1+num2+num3;

类--类的成员方法(函数)--如何理解

如何理解方法这个概念,给大家举个通俗的示例:

程序员调用方法:

给方法必要的输入,方法返回结果。

类的成员方法--声明

publicinttest(inta);

/*方法声明*/

这句话的作用是声明该方法,声明的格式为:

访问修饰符数据类型函数名(参数列表);

在给Person类添加add方法的例题中,我们看到的关键字return,它的功能是把表达式的值返回的值返回给主调函数的方法。

return表达式;

类的成员方法(函数)--特别说明

1、方法的参数列表可以是多个

案例:

在Person类中编写一个成员方法,从键盘输入三个数,返回最大的那个数。

参数列表可以是多个,并且数据类型可以是任意的类型intfloatdoublechar..

访问修饰符返回数据类型函数名(参数列表){

//函数主体

2、方法可以没有返回值

编写一个函数,从控制台输入一个整数打印出对应的金字塔。

返回类型可以是任意的数据类型(int,float,double,char..)也可以没有返回值void表示没有返回值

访问修饰符返回数据类型函数名(形参列表){

类的成员方法(函数)--小练习

编写一个成员函数,从键盘输入一个整数(1-9),打印出对应的乘法表[Demo110.java]

//实例键盘输入打印乘法表[Demo110.java]

importjava.io.*;

publicclassDemo110{

Cfbjiu=newCfb();

jiu.cf();

classCfb{

publicvoidcf(){

try{

//输入流,从键盘接收数

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

//给出提示

请输入1-9,按0退出:

//从控制台读取一行数据

Stringa1=br.readLine();

//把String转为int

intnum1=Integer.decode(a1);

for(inti=1;

=num1;

for(intj=1;

j<

=i;

j++){

System.out.print(i+"

×

+j+"

="

+(i*j)+"

\t"

}

System.out.println();

}

}catch(Exceptione){

e.printStackTrace();

编写函数,使给定的一个二维数组(3×

3)转置

类定义的完善

在介绍了成员方法后,我们类的定义就可以完善一步:

class类名{class类名{待定

成员变量;

→成员变量;

}成员方法;

小结:

1.先设计类;

2.然后根据类创建对象。

小练习:

1、设计计算机类,要求如下:

[Demo109.java]

属性:

品牌(Brand)、颜色(Color)、cpu型号(CPU)、内存容量(Memory)、硬盘大小(Harddisk)、价格(Price)、工作状态(Work)

方法:

打开(Open)、关闭(Close)、休眠(Sleep)

创建一个计算机对象,调用打开,关闭方法

//计算机类与对象的代码

//加载IO流包

publicclassDemo109{

ComputerPc=newComputer();

Pc.Brand="

品牌"

Pc.Color="

颜色"

Pc.Cpu="

Cpu型号"

Pc.Memory="

内存容量"

Pc.Hd="

硬盘容量"

Pc.Price="

价格"

Pc.Work="

工作状态"

try{

//输入流,从键盘接收数

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

//给出提示

请输入0-9控制机器"

//从控制台读取一行数据

Stringa1=br.readLine();

//把String转为float

floatnum1=Float.parseFloat(a1);

if(num1==0){Pc.open();

elseif(num1==1){Pc.close();

elseif(num1==2){Pc.sleep();

elseif(num1==3){System.out.println(Pc.Brand);

elseif(num1==4){System.out.println(Pc.Color);

elseif(num1==5){System.out.println(Pc.Cpu);

elseif(num1==6){System.out.println(Pc.Memory);

elseif(num1==7){System.out.println(Pc.Hd);

elseif(num1==8){System.out.println(Pc.Price);

elseif(num1==9){System.out.println(Pc.Work);

else{System.out.println("

输入错误!

}

}catch(Exceptione){

e.printStackTrace();

classComputer{

StringBrand;

StringColor;

StringCpu;

StringMemory;

StringHd;

StringPrice;

StringWork;

publicvoidopen(){

开机"

publicvoidclose(){

关机"

publicvoidsleep(){

休眠"

1、采用面向对象思想设计超级马里奥游戏人物

-------------------------------------------------------------------------------

2、java面向对象编程

(1)-构造方法(函数)

类的构造方法介绍

什么是构造方法呢?

在回答这个问题之前,我们来看一个需求:

前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做?

你可以在定义类的时候,定义一个构造方法即可。

构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。

它有几个特点:

1、方法名和类名相同

2、没有返回值

3、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化。

特别说明:

一个类可以定义多个不同的构造方法。

//例人类构造方法[Demo111.java]

publicclassDemo111{

Personp1=newPerson(12,"

顺平"

//给予不同的初始值,调用的构造方法不同,构造方法虽同名,但系统会根据初始值来选定构造方法。

//定义一个人类

classPerson{

//默认构造方法

publicPerson(){

//构造方法的主要用处是:

初始化你的成员属性(变量)

//构造方法

publicPerson(intage,Stringname){

我是构造1"

age=age;

name=name;

//构造方法2

publicPerson(Stringname){

我是构造2"

类的默认构造方法

有些同志可能会问?

亲爱的老师,我们在没有学习构造函数前不是也可以创建对象吗?

是这样的,如果程序员没有定义构造方法,系统会自动生成一个默认构造方法。

比如Person类Person(){};

当创建一个Person对象时Personper1=newPerson();

默认的构造函数就会被自动调用。

类的构造方法小结:

1、构造方法名和类名相同;

2、构造方法没有返回值;

3、主要作用是完成对新对象的初始化;

4、在创建新对象时,系统自动的调用该类的构造方法;

5、一个类可以有多个构造方法;

6、每个类都有一个默认的构造方法。

类定义的改进

在提出构造方法后,我们类的定义就应该更加完善了:

class类名{class类名{class类名{

成员变量;

}→成员方法;

→构造方法;

→待定..

}成员方法

}

java面向对象编程

(2)--this

请大家看一段代码:

(Demo112.java)

*重点*:

this是属于一个对象,不属于类的。

java虚拟机会给每个对象分配this,代表当前对象。

坦白的讲,要明白this不是件容易的事

注意事项:

this不能在类定义的外部使用,只能在类定义的方法中使用

/*

this的必要性

*/

publicclassDemo112{

Dogdog1=newDog(2,"

大黄"

Personp1=newPerson(dog1,23,"

郭德纲"

Personp2=newPerson(dog1,24,"

刘谦"

p1.showInfo();

p1.dog.showInfo();

//成员变量

Dogdog;

//引用类型

publicPerson(Dogdog,intage,Stringname){

//可读性不好

//age=age;

//name=name;

this.age=age;

//this.age指this代词指定是成员变量age

this.name=name;

//this.name指this代词指定是成员变量name

this.dog=dog;

//显示人名字

publicvoidshowInfo(){

人名是:

+this.name);

classDog{

publicDog(intage,Stringname){

//显示狗名

狗名叫"

类变量--提出问题?

提出问题的主要目的就是让大家思考解决之道。

publicclassDemo113{

/*inttotal=0;

Childch1=newChild(3,"

妞妞"

ch1.joinGame();

total++;

Childch2=newChild(4,"

小小"

ch2.joinGame();

*/

Ch

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

当前位置:首页 > PPT模板 > 动物植物

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

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