JAVA定义一个狗看门,Java学习之随堂笔记系列——day10

本文详细讲解了面向对象编程的基础概念,包括类与对象的区别、Java类的结构(私有成员、构造方法、get&set)、继承的原理与应用、方法的重写与重载,以及封装、继承和多态三大特性。通过实例演示了如何在老师、学生和动物类中运用这些概念。
摘要由CSDN通过智能技术生成

1、回顾面向对象

1 面向过程:强调的是过程,每一步都需要自己实现,凡事都要亲历亲为。

2 面向对象:强调的是哪个对象能有这个功能就找哪个对象去实现。

3 类和对象的区别

例子:手机图纸(手机类)和手机(手机对象)的关系。

类:是一类事物属性和行为的描述。

对象:这一类事物的具体实现就是对象,也就是根据类创建出来的就是对象。

4 标准的Java类

1、private修饰的成员变量

2、空参构造和有参构造

3、get和set方法

5、private关键字

1、private关键字修饰的成员变量外界无法直接方法,这样就不能赋不合法的值。

2、提供一个get和set方法让外界访问成员变量。

6、this关键字

1、this.变量名表示的是成员变量,可以用于区分同名的成员变量和局部变量

2、this表示当前调用该方法的对象。

7、构造方法

1、构造方法是用来创建对象的。

2、创建对象的时候对成员变量进行初始化。

注意实现:

如果没有写构造方法,系统会自动赠送一个空参构造,如果自己写了构造方法,系统将不在赠送空参构造,建议将空参构造手动写上。

8、面向对象的三大特征:

封装、继承、多态。

2、面向对象-继承

概念:一种子父类关系,子类可以拥有父类的成员变量和成员方法。

继承格式:

public class 子类 extends 父类{

}

继承可以解决什么问题?

如果多个类都有相同的成员变量和成员方法,那么就可以给这些类提取一个父类,让这类去继承父类。

注意事项:

1、一个类可以有多个子类,但是只能有一个父类。

2、Java不支持多继承,但是支持多层继承。也就是只支持单继承。

3、继承中成员变量、成员方法、构造方法的访问特点

成员变量的访问特点:

就近原则:方法内有同名局部变量就是访问局部变量,如果没有同名局部变量就方法当前类的成员变量,

如果当前类没有同名的成员变量,就访问父类的成员变量。如果父类也没有,就编译报错。

例如:

//如果要打印当前子类的age=20,该如何输出

System.out.println(this.age);

//如果要打印父类的age=40,该如何输出

System.out.println(super.age);

this和super的区别?

this表达当前类对象,如果当前类是子类,那么this就表示子类对象。

super:当前类的父类对象。

构造方法的访问特点:(了解)

1、创建子类对象的同时默认会执行父类的空参构造,创建父类对象,目的:初始化父类中的成员变量,因为子类可能会使用到

父类的成员变量。

2、如果在子类的构造方法中访问父类的有参构造,那么需要在构造方法的第一行使用super关键字。例如:

public Zi(int age){

//需求;访问父类的有参构造?

super(age);//将new zi(20)中的20传递个父类的构造方法。

System.out.println("zi类的带参构造");

}

注意事项:

super(...)可以不写,默认就是访问父类的空参构造,如果写了,就必须是构造方法中的第一行代码

成员方法的访问特点:

子类对象在调用方法时,如果子类中有这个方法,那么就是调用子类的方法,如果子类中没有这个方法,那么就调用父类的该方法。如果父类中也

没有该方法,那么就编译编译报错。当然在子类的方法中可以使用super.方法名()访问父类的成员方法。

例如:

public void show(){

super.show();

System.out.println("子类中的show方法执行了...");

}

总结:this表达当前类的对象,super表示当前类的父类对象,super点任意东西都指的是父类中的内容。

4、方法的重写

方法重载:在同一个类中,方法名相同,参数列表(参数个数不同,相同位置的参数类型不同)不同就是方法重载。方法重载和返回值、变量名无关。

方法重写:在子父类关系中,子类定义了一个和父类一样(方法名和参数吧列表一样)的方法就是方法的重写。

小提示:

1、子类如果要重写父类的方法,不需要复制粘贴,只需要在子类中写要重写的方法名就会有提示。

2、@Override注解主要是在编译期检查方法是不是重写,如果是重写的方法就不会编译报错,反之就报错。

方法重写的目的:扩展功能

如果父类中方法的功能不能满足需求,那么子类就可以重写该方法,自己重写写方法体来实现需求,子类重写了该方法,那么调用的时候就是调用子类的方法。

方法重写的注意实现:

在开发中一般重写的方法权限修饰符和父类的一样即可。(一定不能比父类的小)

案例1:老师类和学生类

需求:

1、定义老师类(姓名、年龄成员变量,教书的方法)

2、定义学生类(姓名、年龄成员变量、学习的方法)

分析:

1、定义一个老师类和学生类的父类Person

2、在Person类中定义name和age,提供get/set方法

3、定义老师类和学生类继承Person类,声明各自特有的teach和study方法。

4、定义测试类进行测试

测试类:PersonDemo

1、创建Teacher对象,调用set方法赋值

2、调用get方法打印老师的名字和年龄,调用teach方法

3、创建Student对象,调用set方法赋值

4、调用get方法打印学生的名字和年龄,调用study方法

案例2:

需求:

1、定义猫类(姓名、年龄成员变量,抓老鼠的方法)

2、定义狗类(姓名、年龄成员变量、看门的方法)

分析:

1、定义一个猫类和狗类的父类Animal

2、在Animal类中定义name和age,提供get/set方法

3、定义猫类和狗类继承Animal,声明各自特有的catchMouse和lookDoor方法。

4、定义测试类进行测试

测试类:AnimalDemo

1、创建Cat对象

2、调用get方法打印猫的名字和年龄,调用catchMouse方法

3、创建Dog对象

4、调用get方法打印狗的名字和年龄,调用lookDoor方法

5、package、import、final、static关键字

package:包,包的本质是文件夹,多级包使用点隔开。package表示当前类所在的包。package com.itheima_5;

import:导包,引入其他类所在的包。

package和import的区别?

package用于表示当前类所在的包,import表示导入其他类所在的包。

Java权限修饰符:

public > protected > 默认 > private

1、掌握public和private:public修饰的成员变量和成员方法任何包中的任何类都能访问,private修饰的成员变量和成员方法只能自己类访问。

2、同一个包中的类相互访问,最少可以访问三种修饰符修饰的成员变量和成员方法。

3、不同包中的类相互方法,最多可以访问两种修饰符修饰的成员变量和方法。

final:最终的。

final修饰类:表示这个类是最终类,不能被继承。

final修饰变量(成员变量和局部变量):被final修饰变量是常量,基本数据类型值或者引用数据类型地址值不能发生改变。

final修饰成员方法:表示这个方法是最终方法,不能被子类重写。

注意:final不能修饰构造方法;

static:静态的

1、static修饰的成员变量不属于类的某个对象,被类的所有对象共享。

2、static修饰的内容可以直接使用类名点调用,例如:类名.成员变量名,类名.方法名()

标签:重写,Java,变量,子类,成员,随堂,day10,父类,方法

来源: https://blog.csdn.net/weixin_41808843/article/details/98470633

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值