Java成员方法的定义:(定义一个方法指的就是成员方法)
访问修饰符【public/private/... ,如果不写,就是默认访问修饰符】返回数据类型 方法名 (参数列表...){
//方法体语句;
return返回值;
}
方法的命名:驼峰命名法,如getSum
参数列表:表示成员方法输入cal(int n )
数据类型(返回类型):表示成员方法输出,void表示没有返回值
方法主体,表示为了实现某一功能代码块
return语句不是必须的(返回数据类型处写void就不用写了,或者只写return),返回类型可以为任意值,包含基本数据类型和引用类型。
基本数据类型的传参机制和引用类型的传参机制(引用类型传递的是地址(其实也可以说是值,但值是地址),可以通过形参影响/修改实参。)
方法写好后,如果不去调用,就不会输出;需要先创建对象,然后调用方法。(方法调用时,若在同一个类中的方法调用,直接调用即可,不用创建对象,跨类中的方法A类调用B类时,需要通过对象名调用。)
public class Main{
public static void main(String[] args) {
A a = new A();
//a.sayOK();
a.m1();
}
}
class A{
public void print(int n ){
System.out.println(n);
}
public void sayOK(){
//同一个类中的方法,直接调用即可
print(10);
System.out.println("继续执行sayOk()");
}
//在A类调用B类的方法,需要通过对象名调用
public void m1(){
//创建一个B类的对象,然后再调用方法
System.out.println("m1方法被调用");
B b = new B();
b.hi();
System.out.println("m1方法继续执行");
}
}
class B{
public void hi(){
System.out.println("B类中的hi()方法被执行");
}
}
方法中不能再定义方法,即方法不能嵌套定义
public class Method01{
public static void main(String[] args){
Person p1 = new Person;
//程序一旦发现你在调用这个方法就会去找这个类里面这个speak方法,找到之后就执行里面的方法体
//把speak返回的值,赋给变量人returnres
int returnres = p1.speak(5);
System.out.println("计算结果"+returnres);
}
}
class Person{
String name;
int age;
//(int n)形参列表,表示当前有一个形参n,可以接收用户输入
//public表示这个方法是公开的,int表示方法执行后返回一个int(此处要是写void就没有返回)
public int speak(int n){
int res = 0;
for(int i = 1; i<=n; i++){
//该方法可以接收一个数n,计算从1+...+n的结果
res += i;
}
//System.out.println("计算结果"+res);
return res//把res的值传给接收的变量/对象。
}
}
方法的调用机制:
利用方法,多次调用可以代替循环使用代码的传统方法,提高代码复用性,还可以将实现的细节封装起来供其他用户来调用即可。
//遍历一个(二维)数组,输出数组的各个元素值
public class Method01{
public static void main(String[] args){
int [][]map = {{0,0,1},{1,1,1},{1,2,3}};
//遍历map数组
MyTools tool = new MyTools();
tool.printArr(map);
tool.printArr(map);
}
class MyTools{
public void printArr(int[][] map){
for(int i = 0; i<map.length; i++){
for(int j = 0; j<map[i].length; j++ ){
//print直接打印,println换行打印
System.out.print(map[i][j] + “\t ”);
}
System.out.println();
}
}
}
克隆对象(编写一个方法copyPerson,可以复制一个Person对象,返回复制的对象,即克隆对象,要求得到新对象和原来的对象是两个独立的对象,但只是他们属性相同。)
编写方法的思路:
确定方法的返回类型:Person类
方法的名字:copyPerson
方法的形参(Person p)
方法体:创建一个对象,并复制属性,返回即可
public class ResultDto{
public static void main(String[] args) {
Person p = new Person();
p.age = 100;
p.name = "jack";
MyTools tools = new MyTools();
//将参数p传入进去,然后在这个方法里面产生一个新的对象,然后再返回给p2
Person p2 = tools.copyPerson(p);
//到此p和p2是Person对象,但是是两个独立的对象,只是属性相同
System.out.println(p.age+p.name);
System.out.println(p2.age+p2.name);
}
}
class Person{
String name;
int age;
}
class MyTools{
public Person copyPerson(Person p){
//创建一个新对象
Person p2 = new Person();
//把原来对象的名字赋给p2.name
p2.name = p.name;
//把原来对象的年龄赋给p2.age
p2.age = p.age;
return p2;
}
}