javase day07

方法:对重复且有效的代码进行抽取,抽取的形式就是方法

方法的格式:
修饰符 方法返回值类型 方法名(参数类型 参数名…)
{
方法体;
return 返回值;
}
修饰符:public static
方法的返回值类型:返回的数据是什么类型,这块就是什么类型,如果没有返回值,这块的类型就是void
方法名:标识符
参数列表:参数类型,参数个数,参数顺序
方法体:抽取的代码
return:返回结果值

方法的调用
1、单独调用 方法名(参数值)-------没有返回值的方法sum(2,1);
2、输出调用------system.out.println(sum(2,1));有返回值的方法
3、赋值调用-------int result =sum(2,1)有返回值的方法

注意:
1、方法被调用才能执行
2、注意两个明确-------返回值类型,参数列表
3、return -------一是用于把方法结果值进行返回,二是用于结束方法
4、要考虑参数所有可能的取值范围
5、方法的抽取形式不固定,根据个人经验

重载:(方法名和参数列表共同作用-------方法签名 根据方法签名来进行区分方法)
方法签名---- int sum(int i,int j)--------sum(int,int)

在一个类中,出现了方法名一致参数列表不一致的方法
调用重载方法提供了精确匹配的方法就可以精确匹配,如果没有精确匹配的方法只能匹配相对精确匹配的重载方法,如果提供了多个相对精确匹配的重载方法就调用不到,最好提供重载方法时就提供精确方法

注意:所有的方法执行在栈中
调用方法--------实参-----实际赋予参数的值
如果传入的实参是基本类型,就是值的拷贝
如果参数是引用数据类型,就是地址值的拷贝
方法中拿到拷贝过来的地址值找到堆内存改变元素,会对原堆空间影响
方法中拿到拷贝过来的地址值如果找不到原堆空间,左任何影响都不会影响原堆空间
被调用方法--------形参---------用于接收参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法的递归
方法执行过程中调用本方法(可能会出现栈溢出错误)-----stackoverflowError
在这里插入图片描述

编程题:
在这里插入图片描述
在这里插入图片描述

面向对象的引入

实质就是一种编程范式(一种套路-----类问题的解决方案)
面向过程:关注的是每个过程的代码实现细节
面向对象:先把过程的代码实现细节整合到对象中,只要找到这个对象就能拿到这个对象身上的所有功能

面向对象基于面向过程,面向对象优于面向过程?
如果场景比较简单优先使用面向过程,如果场景比较复杂,就优先使用面向对象
在这里插入图片描述
类和对象的关系:
对一类对象进行抽取,对其共有的特征抽取成属性,对共有的行为抽取成方法,这一类对象就抽取成了类---------类是对象的概括,对象是类的具体实现

在这里插入图片描述

构造方法
与类同名且没有返回值类型用于构建对象,如果类中没有定义任何形式的构造方法,jvm会默认在底层添加一个无参构造,如果类中已经有了任何形式的构造方法jvm就不会再添加一个无参构造,构造方法可以重载,可以对对象的属性进行初始化

在Java中所有的非静态属性以及方法都可以通过对象调用

this
关键字—用于代表当前类的对象
this可以指代还没有创建的对象,指代刚创建出来的对象,指代正在使用的对象,是一个灵活的指代,指代的是正在使用的对象------虚拟的指代
this(参数)------this语句,this语句用于在本类中的构造方法调用其他形式的构造方法,保证在第一行

构造代码块-------和对象有关系
构造代码块里的内容优先所有的构造方法优先执行和位置没有关系,可以对属性初始化
{
this.name=“lili”;
this.gender=‘女’;
this.age=1;
}

局部(方法)代码块-----控制变量的生命周期
方法内{}-------局部(方法)代码块 用于控制变量的生命周期,提供内存利用率

匿名对象,没有名字的对象--------只能调用一次,当作参数传递
(常用场景)
new Baby().age=10;
new Baby().gender=‘女’;
m(new Baby());

局部变量与成员变量的区别
1、位置
局部变量:方法中或者代码(非静态)里
成员变量:方法外类内
2、作用范围
局部变量:方法内或者代码块里
成员变量:类内
3、内存位置
局部变量:栈
成员变量:堆
4、生命周期
局部变量:当方法执行或者执行代码块而创建,方法执行完毕或者代码块执行完成就随着消除
成员变量:随着对象的创建而产生,随着对象变为无用对象回收时就销毁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值