oopDay2-动参,调用,构造,封装继承,重写

oop面向对象的编程思想

Day 2

oop

封装 继承 多态

类的定义: 一类具有相同特征和功能的事物的抽象 模板

对象: 用模板创建的变量叫做对象

2.1 静态数组
public int add(int[] arr){
    ...
}

在这里插入图片描述

2.2 动态参数列表
public int add(int ... arr){
    ...
}

在这里插入图片描述

在这里插入图片描述

注意事项:

1.方法参数列表中最多只能有一个动态列表

2.动态参数列表需要放在最后面

public int dong(int a , int ... arr){
    ...
}

方法

2.3 方法调用

在这里插入图片描述

2.4 oom

方法与方法之间一直循环调用

最终会造成栈溢出的错误

在这里插入图片描述

2.5 计算器

在这里插入图片描述

普通方法

访问修饰符 返回类型 名(参数列表){ 方法体 }

public int add(int a,int b){
return a+b;}
JiSuanQi jsq = new JiSuanQi()
jsq.add(2,3);
2.6 构造方法

访问修饰符 类名(参数列表){ 方法体 }

public Student(){}
new Student();

在这里插入图片描述

2.7 构造方法的有参和无参

构造方法如果不去定义,系统会自动添加一个无参的构造方法

但是如果定义了构造方法,则系统不会添加无参数的构造方法

建议如果加了有参的构造方法,一定要将上无参的构造方法

在这里插入图片描述

2.8 this方法的调用

this.属性 方法 调用 本类的 属性和方法

public Studnet(String name){
    this.name=name;
}

this( ) 构造方法之间的调用

1.用来调用其他的构造方法

在这里插入图片描述

2.注意:构造方法调用构造方法时必须放在第一行,否则报错

在这里插入图片描述

2.9封装

封装 保护

访问修饰符

public	共有的				(都可用)

private	私有的				(本类可用)

protected	受保护的		(本包可用)

不写 默认的

访问修饰符可以修饰方法 和 属性

​ 本类 子类 本包其他类 其他包其他类

public √ √ √ √

private √ × × ×

protected √ √ √ × 如果子类在其他包里可行(√)

不写 √ √ √ × 如果子类在其他包里不可行(×)

protected受保护的,同包下可用,不同包下不可用

在这里插入图片描述

保护属性

封装: 将属性私有化 开放公开的get set方法

//将属性私有化
private	int	age;				//---2

//get方法	得到	属性的值

public	getAge(){
    return age;			//return返回返回值(---2)
}

//set方法	设置属性值

public void	getAge(int age){	//---1
    this.age=age;		//this.是将(---1)中传入的age调去(---2)
}

//后期学习中,调取值时用的都是get,set方法,而不是直接用(---2)属性
2.10 Get,Set方法

idea的快捷键 alt+insert

set 出

get 入

在这里插入图片描述

2.10.1 (Get Set)的输出测试

在这里插入图片描述

2.11继承(extends)

所有的类初始都继承Object类(对象类),即万物皆对象

爷爷类 extends Object

父类 extends爷爷

儿子类 extends父亲

在这里插入图片描述

在这里插入图片描述

1.关键字 extends 单继承多实现

单继承:子类继承父类

单继承:子类继承父类

多实现:有多个干爹,通过接口时间线

2.子类可以使用父类非私有的属性和方法

3.子类可以通过super关键字调用父类的属性或方法

​ this.属性或方法 调用本类自己的属性或方法

2.12继承的意义

继承关系的两个类 父类 可以提供一种默认的行为方式

​ 子类 也可以通过重写的方式按照自己的方式执行

1.重载(overload)

同一类中方法名相同 参数列表不同

意义:方便使用者的调用

2.重写(override)

在继承关系的类中,子类中的某个方法 和父类方法的声明部分 一样

意义:在子类中可以按照自己的行为方式执行。可以进行差异化的操作

Father{
    public void doBusiness(){	//声明部分
        xxxxxxxx;
    }
}
Son{
    public void doBusiness(){	//声明部分
        wwwwwwww;
    }
}

在这里插入图片描述

猫类:Cat

​ 品种 type

​ 年龄 age

​ 名称 name

卖个萌

    public void maimeng(){
        System.out.println("卖了个萌");
    }
    public void jiao(){
        System.out.println("喵喵喵");
    }

狗类:Dog

​ 品种 type

​ 年龄 age

​ 名称 name

    public void yaoweiba(){
        System.out.println("摇尾巴");
    }
    public void jiao(){
        System.out.println("汪汪汪");
    }

宠物类Animal

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值