Java基础知识整理:方法,可访问和非访问控制符,重写和重载

方法的必要性:

1:通过方法可以实现重复代码的简化,和代码的复用。
2:将某些功能代码封装到一个方法的内部,实现了功能的模块化,方便后期的维护和修改。

方法的定义:

语法:

[方法的修饰符 public static]  方法的返回类型  方法名(参数列表){
	//方法体
}

1:[方法的修饰符 public static]:

    可选的部分,不是必须的,目前就这么用就ok了。

方法的修饰符分为:可访问控制符非访问控制符两类(看Java关键字解析)

可访问控制符有 4 种:
公共访问控制符: public ;
私有访问控制符: private ;
保护访问控制符: protected ;
私有保护访问控制符: private protected

非访问控制符有 5 种:
抽象方法控制符: abstract ;
静态方法控制符: static ;
最终方法控制符: final ;
本地方法控制符: native ;
同步方法控制符: synchronized

2:方法的返回类型:

可以是  void(空) ||  java 支持的任意类型.

代表着方法 执行完毕之后 是否会产生一个结果。

【1】一种方法只是实现了一段功能,不会得到一个结果。那么该方法的返回类型 必须是void。
【2】一种方法,执行完毕之后希望得到一个结果数据。这个时候方法的返回类型就不能是void了。必须是的数据类型要与结果的数据类型兼容。

3:方法名:通过名字来访问该方法的功能。还要通过名字来显示该方法实现了什么样的功能。

方法名也是一类标识符。命名规范和局部变量一致,首字符小写,遵循驼峰命名法。

4:参数列表:又称为形参列表。

表达的意思:在使用方法的时候,需要传递给方法的一些动态的数据,表达了方法在使用的时候的一种需求。

public static void printStarRect(int width) :在使用该方法的时候,需要给方法传递一个 int 类型的值。

参数列表的格式:

1:参数列表可以为空。()
2: 需要传递的数据可以是任意个,类型也是任意类型。(数据类型 变量名1, 数据类型 变量名1, 数据类型 变量名1......)

5:方法体:功能实现的主体部分。

return:
	如果方法的返回类型是 void。那么可以在方法中 使用 [return;] 
	作用:直接结束方法。方法直接返回。

	如果方法的返回类型 不是void ,那就是java支持的某种类型。那么该方法必须 使用 return 后面跟着一个 想要得到的结果。
		public static int max(int a,int b){
			int max = a > b ? a : b;
			return max;
		}

6:把方法的名字 + 参数列表 组合 称之为 方法的签名 signature。

在一个类的内部  方法的签名 必须唯一。

7:方法的使用:

方法的调用 invoke
通过方法名 + 参数列表(实参列表);

8:若想使用方法定义的功能,那么必须调用方法才可以执行。必须直接的或者间接的在main方法中被调用。
方法只定义好了,不使用,是不会执行的。


内存图

在这里插入图片描述
1:方法的调用,跳转执行。
第一步,先进行参数的传递,将实际参数的值赋值给形式参数。参数的传递本质是一个复制的过程。形式参数就是一种局部变量参数,先对局部变量进行空间的分配。

方法调用完毕之后,系统会将该方法分配的所有局部变量的内存整体回收,栈帧

参数的传递的本质:就是开辟形参的内存空间,并将实际参数的值赋值给形式参数的过程。

所有对于形式参数的改变都是改变的 实际参数值的拷贝 不会影响实际参数原有的值

注意问题:

1:方法不能被定义到任意的其他的方法的内部去。
2:所有的方法都必须在某一个类的内部。必须被最外层的大括号包围。
3:如果想使用方法提供的功能。方法的调用。那么该方法必须直接的或者间接的被 main 调用。
4:方法的调用的格式语法:方法名+参数列表(实参列表)。
5:定义方法的时候,方法体不要过长。(方法的功能要单一化)极限50行代码,最好不要超过20行代码。

方法的重载: overload

概念:在同一个类的内部,方法名字相同,参数列表不同,与返回类型无关 的方法,称之为 方法的重载。

方法名字相同:代表重载的方法实现的是类似的功能。

参数列表不同: 参数的个数不同、参数的类型不同、顺序不同。

与返回类型无关:对于返回类型不是void 的方法,通常的用法是 使用该方法 参与某些计算的表达式。 但是也可以直接调用,而不参与任何的运算。与返回类型是void 的直接调用的方式,是有语义的冲突的。(保证方法的签名 signature 唯一性)。

方法的重新写

前提条件:存在继承。在子类中重写父类的方法。

==为什么需要重写:子类对象觉得父类中继承的方法不能满足自身的需求了。需要重新定义该方法。就可以在子类中对父类中的被继承的下来的方法进行重写。 ==

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值