Day09_Java
方法中的参数类型
实际参数:方法调用的时候掺入的参数,具有一定的意义
形式参数:方法声明的时候掺入参数,仅做数据类型的占位,没有具体的值
方法中的参数传递
基本类型的参数传递:
在栈区中复制了一份具体的值,值传递
引用类型的参数传递
在栈区中复制了一份指向堆区的地址参与方法的执行,可能会影响原数据,地址传递 (引用传递)
方法的调用
静态方法:
类名。方法名();
实例(对象)方法:
对象。方法名();
构造器(构造方法):
public 类名(){}
1.构造方法没有返回值,即省略返回值的声明
2.构造方法的方法名字必须是类名
3.构造方法的权限一般是public
4.构造方法一般用作成员变量的初始化
5.方法中方法体能写的内容,在构造方法的方法体重也可以写。构造方法也可以写逻 辑,但是不推荐
6.构造方法也支持重载
7.构造方法也支持互相调用
8.如果一个类中没有声明任何构造器,则默认提供一个无参构造器来完成对象的创建,如果出现了任何一个构造器,则默认的构造器失效,如果需要无参构造器,需手动声明
this关键字的使用方式
1.放在变量前面,用来区分同名的成员变量和参数
2.放在方法的前面,用来中本类中调用其他本类的方法(一般不用)
3.放在构造器前面,用来在一个构造器里调用其他东西
普通方法调用this。方法();
构造方法的调用this();
方法重载
1.发生在一个类中
2.方法名称一定相同
3.参数列表一定是不同的
参数类型
参数个数
参数顺序
4.返回值类型
5.抛出异常
6.访问控制修饰符的权限
总结,必要条件123,456没有关系
创建对象的过程:
Teacher t1 = new Teacher();
1.在栈区中开辟空间保存引用
2.在堆区开辟空间保存实际数据
3.把堆区的内存地址赋值给栈区引用
4.给给变量赋默认值(系统)
5.给变量显示的赋初始值
6.。。。
7.通过对应的构造器来完成对象的创建
面向对象的三大特性:封装、继承、多态
封装
1.数据隐藏
先让外部没有办法访问类的比那里
使用private修饰变量
public protected default private
给成员变量提供统一访问的接口,实际上就是使用方法来控制变量的赋值和访问---->set方法和get方法
get方法:有返回值,没有参数,返回值类型和变量类型保持一致
set方法:有参数,没有返回值,一般来讲传入参数的类型和变量数据类型保持一致
2.代码复用
一段代码如果写了两遍以上,后期还可能还会在写,就会考虑封装
提供方法的输入输出,以及方法的功能即可
继承
语法
public class Cat extends Animal
public class 子类 extends 父类
public class Cat 等同于public class Cat extends Animal
规则
1.子类可以获得父类所提供的的属性和方法,受到访问权限控制
2.子类的构造器默认先调用父类的空参构造器
3.如果子类想要在子类的构造器调用父类的非空参构造器,需要super
super
super代表当前类的父类的对象
super.变量,代表访问父类的变量值
super.方法名()代表调用父类方法
super()代表调用父类的空参构造器
super和this一样,都必须放在构造器的第一行
super和this不能同时出现在同一构造器
方法重写
@Override
该注解放在方法前面,可以检测该方法是否是重写方法
规则
1.发生在子父类关系中
2.必须保证子父类中是相同的方法
所以在重写中不讨论方法名字和参数列表
3.返回值子类的返回值类型要小于父类的,至少相同
4.权限
子类的访问权限必须比父类的大,至少要相同
5.异常抛出
子类的异常抛出要小于父类,至少要相同
一同 一大 两小