一、定义/概念
1.定义:
- Java方法是语句的集合,它们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
main方法:Java调用执行,目的是运行代码
2.优点:
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性。
3.定义规则
方法包含一个方法头和一个方法体。
格式:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。如没有,则为void。
- 方法名:方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
命名规则:
- 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符
- 下划线可能出现在方法名称中用以分隔名称的逻辑组件
4. 四种方法(无返回值就没有return语句)
(1)无参无返回值
public static void demo(){
方法体;
}
(2)无参有返回值
public static 基本类型/引用类型 demo(){
方法体;
return:数值(基本类型/引用类型:与定义时的类型要一致);
}
(3)有参无返回值
public static void demo(int a,int b){
方法体;
}
(4)有参有返回值
public static 基本类型/引用类型 demo(int a,int b){
方法体;
return:数值(基本类型/引用类型:与定义时的类型要一致);
}
形参的作用是接收外部传入的数据,在方法调用的时候才分配内存空间,相当于该方法的局部变量。
5.创建对象
作用:通过对象调用方法
Test01 test01 = new Test01 ( ) ;
test01.login ( ) ;
调用方法时不能指定实参类型!
二、构造方法
1.语法:
-
无返回值类型
-
方法名与类名相同
-
可以指定参数
访问修饰符 构造方法名 ( ) {
//初始化代码
2.作用: (类的构造方法执行完成后,对象就被创造出来了)
- 对象初始化
- 系统提供默认无参构造方法
规范:写一个有参构造,必须配一个无参构造
三、重载
自定义构造方法:
- 方法名相同
- 参数项不同
- 与返回值,访问修饰符无关
- 此时系统不再提供默认无参构造方法
public class Student {
//属性
public String name://姓名
public int score:
//构造方法
public voidStudent(){
}
//构浩方法重载
public voidStudent(String name,int score){
this.name = name;
this.score = score;
}
}
this关键字:
- 调用属性
this.health = 100;
this.name = "大黄";
- 调用方法
this.print();
- 调用构造方法:
- 调用无参构造方法 this();
- 调用有参构造方法 this("小黑",100,100,"雄");
四、成员变量和局部变量区别
成员变量 | 局部变量 |
成员变量的作用域在整个类内部都是可见的 | 局部变量的作用域仅限于定义它的方法 |
Java会给成员变量一个初始值 | Java不会给局部变量赋予初始值 |
在同一个方法中,不允许有同名局部变量 在不同的方法中,可以有同名局部变量 | 在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级 |
五、用方法写的计算器
package com.xinzhi.test;
public class Test07 {
int num1;
int num2;
String fh;
public Test07(){}
public Test07(int num1,int num2,String fh){
this.num1=num1;
this.num2=num2;
this.fh = fh;
}
public int jsq(int num1,int num2,String fh){
int a = 0;
switch (fh){
case "+":
a = num1 + num2;
break;
case "-":
a = num1 - num2;
break;
case "*":
a = num1 * num2;
break;
case "/":
a = num1 / num2;
break;
case "%":
a = num1 % num2;
break;
default:
break;
}
return a ;
}
}
package com.xinzhi.test;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Test07 test07 = new Test07();
System.out.println("请输入第一个数");
int num1 = in.nextInt();
System.out.println("请输入第二个数");
int num2 = in.nextInt();
System.out.println("请输入符号");
String fh = in.next();
int i = test07.jsq(num1,num2,fh);
System.out.println("计算结果为"+i);
}
}
结果: