目录
访问修饰符 返回数据类型 方法名(形参列表){
语句;
return 返回值;
}
1、参数列表:表示成员方法输入
2、返回数据类型:表示成员方法输出,void:表示没有返回值
3、方法主体:表示为了实现某一功能代码块
4、return 语句不是必须的,有的方法不一定有返回值
参考示例代码:
- public class Method1 {
- public static void main(String[] args) {
- //使用方法
- /**
- * 1、当类里的方法写好后,不去调用是没有效果的
- * 2、调用方法前需要先创建对象,再调用方法
- */
- Person person = new Person();
- person.speak(); //调用方法
- person.count();
- person.count1(100); //调用方法同时将 n = 100
- int i = person.count2(10, 20);
- System.out.println(i);
- }
- }
- class Person{
- String name;
- int age;
- //方法(成员方法)
- //public:表示方法公开
- //void:表示没有返回值
- //speak:表示方法名
- //():表示形参列表
- //{}:方法体,要执行的代码
- //System.out.println("这是一个人");:该方法输出的内容
- public void speak(){
- System.out.println("这是一个人");
- }
- //计算1到1000的值
- public void count(){
- int num = 0;
- for (int i = 1; i <= 1000 ; i++) {
- num += i;
- }
- System.out.println("num = " + num);
- }
- //(int n):当前有一个形参
- public void count1(int n){
- int num = 0;
- for (int i = 1; i <= n ; i++) {
- num += i;
- }
- System.out.println("num = " + num);
- }
-
- /**
- * 1、int:表示方法执行后,返回一个int值
- * 2、return res;:表示把res的值返回
- */
- public int count2(int num1,int num2){
- int res = num1 + num2;
- return res;
- }
- }
不使用方法遍历三次数组:
- public class Method2 {
- public static void main(String[] args) {
- //定义一个数组
- int[] arr = {1,3,4,6};
- for (int i = 0; i
- System.out.println("arr[i] = " + arr[i]);
- }
- System.out.println("--------------");
- for (int i = 0; i
- System.out.println("arr[i] = " + arr[i]);
- }
- System.out.println("--------------");
- for (int i = 0; i
- System.out.println("arr[i] = " + arr[i]);
- }
- }
- }
代码冗余,可读性差,维护麻烦。
使用方法来进行遍历:
- public class Method2 {
- public static void main(String[] args) {
- //定义一个数组
- int[] arr = {1,3,4,6};
- MyTools myTools = new MyTools();
- for (int i = 0; i < 3 ; i++) {
- System.out.println("-------");
- myTools.printArr(arr);//使用方法遍历三次
- }
- }
- }
- class MyTools{
- public void printArr(int[] arr){
- for (int i = 0; i
- System.out.println("arr[i] = " + arr[i]);
- }
- }
- }
1、提高了代码的复用性
2、将实现的细节封装起来,供其他用户调用就行。
四、方法注意事项
4.1、访问修饰符(控制方法使用范围)
当不写访问修饰符时使用默认修饰符,主要有四种(public,protected,默认,private)
4.2、返回数据类型
1、一个方法最多有一个返回值,当要返回多个结果,使用数组。
2、返回类型可以为任意类型,包括基本类型或引用类型(数组,对象)
示例代码:
- public class Method3 {
- public static void main(String[] args) {
- AA aa = new AA();
- int[] arr = aa.getArr(2, 3);
- System.out.println("两数之和:" +arr[0]);
- System.out.println("两数之差:" +arr[1]);
- }
- }
- class AA{
- public int[] getArr(int num1,int num2){
- //创建数组
- int[] arr = new int[2];
- arr[0] = num1 + num2;
- arr[1] = num1 - num2;
- return arr;
- }
- }
3、方法要求有返回数据类型,方法体中最后的执行语句必须为return值,并且要求返回值类型必须和return的值类型一致或兼容。
示例代码:
- public double a(){
- int a = 1;
- return a; //这里会进行自动类型转换
- }
4、方法是void,方法体中可以没有return语句 或者 只写return。
示例代码:
- public void b(){
- return; //这里不能返回数据类型
- }
4.3、方法名
1、遵循驼峰命名法,最好见名知意。
4.4、形参列表
1、一个方法可以有零个参数,也可以有多个参数,中间用逗号隔开。
2、参数类型可以是任意类型,包含基本类型或引用类型。
3、调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数。
4、方法定义时的参数为形式参数又称形参,方法调用时传入的参数又称实际参数又称实参,实参和形参的类型要一致或兼容即个数、顺序必须一致。
4.5、方法体
完成功能的具体语句,可以是输入、输出、变量、运算、分支、循环、方法调用,但不允许方法里面再定义方法。
示例代码:
- public void c(){
- public void d(){ //编译就报错
-
- }
- }
4.6、方法的调用
1、同一个类中的方法调用,直接调用就行。
示例代码:
- public class Method4 {
- public static void main(String[] args) {
- A a = new A();
- a.a2();
- }
- }
- class A{
- public void a1(){
- System.out.println("a1方法被调用");
- }
- public void a2(){
- //在本类中直接调用
- a1();
- System.out.println("a2方法执行");
- }
- }
2、跨类中的方法A类调用B类的方法,需要通过对象名调用。
示例代码:
- public class Method4 {
- public static void main(String[] args) {
- B b = new B();
- b.b1();
-
- }
- }
- class A{
- public void a1(){
- System.out.println("a1方法被调用");
- }
- }
- class B{
- public void b1(){
- //先创建B对象,再调用方法
- A a = new A();
- a.a1();
- System.out.println("b1方法调用");
- }
- }
五、成员方法传参机制
5.1、基本数据类型传参
基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参。
示例代码:
- public class Method7 {
- public static void main(String[] args) {
- int a = 1;
- int b = 2;
- EE ee = new EE();
- ee.swap(a,b);
- System.out.println("main方法中的值a=\t" + a + "b=\t" + b);//a=1,b=2
- }
- }
- class EE{
- public void swap(int a,int b){
- System.out.println("a和b交换前的值a=\t"+ a +"b=\t" + b);//a=1,b=2
- //完成a和b的值交换
- int tmp =a;
- a = b;
- b = tmp;
- System.out.println("a和b交换后的值a=\t"+ a +"b=\t" + b);//a=2,b=1
- }
- }
5.2、引用类型传参
引用数据类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参。
示例代码:
- public class Method8 {
- public static void main(String[] args) {
- Persons persons = new Persons();
- persons.name = "tom";
- persons.age = 45;
- UpdatePerson updatePerson = new UpdatePerson();
- updatePerson.Update(persons);
- System.out.println("main方法中的年龄为:" + persons.age);
- }
- }
- class Persons{
- String name;
- int age;
- }
- class UpdatePerson{
- public void Update(Persons persons){
- persons.age = 100;//修改对象属性
- }
- }
六、方法练习
6.1、编写一个类,有一个方法判断一个数是奇数还是偶数,返回Boolean。
示例代码:
- public class Method5 {
- public static void main(String[] args) {
- CC cc = new CC();
- boolean oud = cc.isOud(5);
- if (oud == true){
- System.out.println("这是一个奇数");
- }else {
- System.out.println("这是一个偶数");
- }
- }
- }
- class CC{
- public boolean isOud(int num){
- // if (num % 2 != 0){
- // return true;
- // } else {
- // return false;
- // }
- //使用三元运算符
- //return num % 2 != 0 ? true : false;
- return num % 2 != 0;
- }
- }
6.2、根据行、列、字符打印对应行数和列数的字符。
示例代码:
- public class Method6 {
- public static void main(String[] args) {
- DD dd = new DD();
- dd.printChar(4,4,'#');
- }
- }
- class DD{
- public void printChar(int num1,int num2,char c){
- for (int i = 1; i <=num1 ; i++) {
- for (int j = 1; j <=num2 ; j++) {
- System.out.print(c);
- }
- System.out.println();
- }
- }
- }
-
相关阅读:
华为防火墙基本配置ASPF与Server-map表
太速科技-基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡
Unirech腾讯云国际版-使用腾讯云服务器手动建立WordPress 个人站点Linux系统教程
【正点原子STM32连载】第二十章 基本定时器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
信息系统项目管理师核心考点(二十八)项目进度计划输出(成果)
线程池的应用
C++打怪升级(十一)- STL之list
SpringCloud(15)之SpringCloud Gateway
文心一言 VS 讯飞星火 VS chatgpt (90)-- 算法导论8.3 3题
几个年薪百万的码农下属
-
原文地址:https://blog.csdn.net/qq_46093575/article/details/126289789