老师java预科56月份录屏5类和对象_第1页
老师java预科56月份录屏5类和对象_第2页
老师java预科56月份录屏5类和对象_第3页
老师java预科56月份录屏5类和对象_第4页
老师java预科56月份录屏5类和对象_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类和对象学完本次课程后,你能够:定义类和创建对象定义方法掌握方法重载会使用成员变量和局部变量会使用构造方法本课目标2/55万物皆对象世界是由什么组成的?3/55

万物皆对象世界是由什么组成的?名胜动物

,植物……

人物品

分类是人们认识世界的一个很自然的过程,在

日常生活中会不自觉地进行分类

4/55身边的对象张浩李明收银员

员工号—10001

姓名—李明

部门—财务部

操作:

收款

打印账单

顾客姓名—张浩年龄—20体重—60kg

操作:

购买商品5/5520岁

对象的特征——属性属性——对象具有的各种特征(静)每个对象的每个属性都拥有特定值

例如:张浩和李明的年龄、姓名不一样

张浩属性60kg

顾客张浩6/55打印账单方法

刷卡对象:用来描述客观事物的一个实体,由一组属

性和方法构成

收银员李明

对象的特征——方法方法——对象执行的操作(动)

收银7/55Spider的属性和方法属性:

品牌:法拉利

型号:F360

Spider

颜色:黄色

价格:380万元

方法:

发动

停止

加速列出小狗对象的属性和方法

属性:

颜色:白色

方法:

对象的属性和方法提问

列出尼古拉斯·凯奇驾驶的这辆法拉利F3608/55教室里的对象网络提问说一说教室里的对象,描述它们的属性和方法是什么?9/55操作:学习……学生对象姓名—李明年龄—21体重—62kg

操作:

学习

……

类和对象学生对象姓名—张浩年龄—20体重—60kg

学生类姓名年龄体重操作:学习……属性抽取方法10/55操作:学生对象姓名—李明年龄—21体重—62kg

操作:

学习

……

类和对象学生对象姓名—张浩年龄—20体重—60kg

学生类姓名学习……方法组对

集合

类学习

:具有相同属性和方法的一

年龄

象的属性

抽取

操作:11/55小布什普京克林顿……

类和对象的关系类是抽象的概念,仅仅是模板

比如说:“人”对象是一个你能够看得到、摸得着的具体实体

“人”类

特征(属性)

年龄

体重行为(方法)

食住行

12/55Java

是面向对象的语言所有Java程序都以类class为组织单元关键字class定义自定义的数据类型public

class

HelloWorld

{public

static

void

main(String[]

args){

System.out.println("Hello

World!!!");

}}13/55

Java类模板类将现实世界中的概念模拟到计算机程序中public

class

类名

{

//定义属性部分

属性1的类型

属性1;

属性n的类型

属性n;

//定义方法部分类名首字母大写

定义类的步骤:

(1)定义类名

(2)编写类的属性

(3)编写类的方法

方法1;

方法m;}

演示示例:创建Student类

语法成员变量

成员方法14/55

如何创建和使用对象使用对象的步骤

创建对象

类名

对象名

=

new

类名();

Studentstudent=

new

Student();

引用对象成员:使用“.”进行以下操作

引用类的属性:对象名.属性

引用类的方法:对象名.方法名()

=

"张三";

//给name属性赋值student.show();//调用show()方法演示示例:创建和使用对象

15/55类的方法定义类的某种行为(或功能)

类的方法

通过前面案例,请思考:方法是什么?public

返回值类型

方法名()

{

//这里编写方法的主体}

请回忆:如何定义一个方法?

public

void

show(){

System.out.println("姓名:"

+

name

+

",密码:"

+

password);

}

(1)驼峰命名规则(2)有意义16/55

方法的返回值两种情况

如果方法具有返回值,方法中必须使用关键字return

返回该值,返回值类型为该值的类型

返回值只能有一个

public

class

Student{

String

name

=

"张三";

public

String

getName(){return

name;

}

}如果方法没有返回值,返回值类型为void作用:

跳出方法、返回结果17/55情况举例Student类的方法a()调用Student类的方法b(),直接调用publicvoida(){b();//调用b()}Student类的方法a()调用Teacher类的方法b(),先创建类对象,然后使用“.”调用publicvoida(){Teachert=newTeacher();t.b();//调用Teacher类的b()}方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率方法调用观察之前编写过的方法,都是无参方法18/55调用带参数的方法如何使用带参数的方法<访问修饰符>

返回类型

<方法名>(<形式参数列表>)

{//方法的主体}定义带参数的方法对象名.方法名(参数1,参数2,……,参数n)实参列表演示示例:带参方法19/55方法重载同一个类中方法名相同参数个数或类型或者顺序不同与返回值、访问修饰符无关方法重载演示示例:方法重载20/55

小结提问以下不属于方法重载的是()。(A)

public

void

method1(){}

public

void

method1(int

i){}(B)

public

void

method1(){}

public

int

method1(){return

0;}(C)

public

void

method1(){}

public

int

method1(int

i){return

0;}

21/55Scanner的使用在程序运行中,如何接收用户键盘输入的值?问题使用Scanner

第一步:导入Scanner类

import

java.util.*;

第二步:创建Scanner对象

Scanner

input

=

new

Scanner(System.in);

第三步:获得键盘输入的数据

int

now

=

input.nextInt();

22/28方法说明Stringnext()获得一个字符串intnextInt()获得一个整型数值doublenextDouble()获得一个双精度类型数值Scanner

的常用方法演示示例:Scanner的使用23/28带多个参数的方法使用带参方法实现学员信息管理增加学员姓名在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功问题演示示例:带多个参数的方法24/55//方法定义public

void

addName(String

name){//方法体}//方法调用对象名.addName(String

"张三");调用方法时不能指定实参类型!常见错误2-1代码阅读注意25/55//方法定义public

boolean

searchName(int

start

,int

end

,String

name){//方法体}//方法调用String

s="开始";int

e=3;String

name="张三";boolean

flag=对象名.

searchName(s

,e

,name);形参和实参数据类型不一致!数量也要一致!常见错误2-2代码阅读注意26/55public

class

Test

{

public

void

calc1(int

num){

num=num+1;

}

public

void

calc2(Student

student){

student.age=student.age+1;

}}//测试类Test

test=new

Test();int

n=8;test.calc1(n);Student

stu=new

Student();stu.age=18;test.calc2(stu);System.out.println(n+"---"+stu.age);输出结果:8---19

方法传参以下代码输出结果是什么?27/55

方法传参

分析基本数据类型和引用数据类型数据在传参时区别内存88nnum传值28/55

方法传参

分析基本数据类型和引用数据类型数据在传参时区别内存89nnum传值29/55

方法传参

分析基本数据类型和引用数据类型数据在传参时区别内存stu学员对象年龄:18student传地址30/55

方法传参

分析基本数据类型和引用数据类型数据在传参时区别内存stu学员对象student传地址19

年龄:基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用

31/55使用学员对象数组作为参数,实现学员成绩修改如果学员成绩小于60,集体提高2分对象数组作为参数问题演示示例:对象数组做参数32/55

构造方法

提问回顾之前案例,创建学员数组对象的代码Student[]

stus=new

Student[3];Student

s1=new

Student();="张三";s1.score=40;Student

s2=new

Student();="李四";s2.score=90;stus[0]=s1;stus[1]=s2;步骤固定繁琐

无参构造方法,每

个类都有个默认无参

构造方法

带参构造方法

Student

stu1=new

Student("张三",40);

Student

stu2=new

Student("李四",90);

……

33/55

构造方法构造方法访问修饰符

构造方法名

(

)

{

//初始化代码}无返回值类型

方法名与类名相同

可以指定参数作用

对象初始化

系统提供默认无参构造方法

34/55

构造方法使用阅读代码,说出运行结果,并指出原因class

Penguin

{

//省略相关属性

public

void

Penguin()

{

health=10;

sex="雄";

System.out.println("执行构造方法");

}

public

void

print()

{

System.out.println("企鹅的名字是"+

name

+

",健康值是"

+

health

+

",性别是"

+

sex);

}}

Penguin

pgn3=

new

Penguin();pgn3.print();35/55this();

this的用法this关键字的用法

调用属性

this.health

=

100;

=

"大黄";

调用方法

this.print();

调用构造方法

如果使用,必须是构造方法中的第一条语句this("小黑",100,100,"雄");

36/55方法名相同参数项不同

构造方法重载构造方法重载

自定义构造方法方法重载

与返回值、访问修饰符无关此时系统不再提供默认无参构造方法

public

Student(){}public

Student(String

name,int

age){

=name;

this.age=age;带参构造方法this关键字是对一个对象的默认引用,这里用以区分同名成员变量}

演示示例:构造方法使用

37/55变量声明的位置决定变量作用域变量作用域确定可在程序中按变量名访问该变量的区域成员变量和局部变量2-1//…for(int

a

=

0;

a

<

4;

a++)

{System.out.println

("hello"

);}System.out.println(

a

);//…代码错误,a的作用域仅在for循环中38/55public

class

AutoLion{

变量1类型

变量1;

变量2类型

变量2;

变量3类型

变量3;

public

返回类型

方法1(){

变量4类型

变量4;

}

public

返回类型

方法2(){

变量5类型

变量5;

方法2

}}

成员变量和局部变量2-2问题

谁能使用这些变量?

AutoLion类的方法,

其他类的方法

成员变量方法1

局部变量39/55public

class

Test

{int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论