版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类和对象学完本次课程后,你能够:定义类和创建对象定义方法掌握方法重载会使用成员变量和局部变量会使用构造方法本课目标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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挂篮施工协议书
- 教师集资协议书
- 接送病人协议书
- 挂名建房协议书
- 救灾物资协议书
- 国开行融资协议书
- 挂车运输协议书
- 奖学金基金协议书
- 教师进修协议书
- 学校三方协议合同
- 2025-2026学年湘美版小学美术四年级(上册)期末测试卷附答案(4套)
- 2025年新材料科技创新平台建设可行性研究报告
- 2025年1月黑龙江省普通高中学业水平合格性考试物理试卷(含答案)
- 知识点及2025秋期末测试卷(附答案)-苏教版(新教材)小学科学小学科学二年级上册
- 《城市轨道交通车站机电设备运用》课件 项目三:站台门系统
- 船舶协议装运合同
- 企业税务规划合规审查手册
- 附件扭转诊治中国专家共识(2024年版)解读
- 全员品质意识培训
- 货物代理报关合同范本
- 2025甘肃酒泉市公安局招聘留置看护岗位警务辅助人员30人(第三批)考试笔试备考题库及答案解析
评论
0/150
提交评论