方法的类型 1、如何声明 【修饰符】 返回值类型 方法名(【形参列表】){ 方法体:实现代码的功能 } 返回值类型: (1)void:代表无返回值 (2)非void:可以是任意的JAVA数据类型,包括8种基本数据类型、所有的引用数据类型(数组,类) 【形参列表】: (1)():无参 (2)(形参列表):有参 2、调用 (1)在本类中,同一个级别,直接调用 方法名(); (2)在其他类中,需要通过:“对象名.方法” 对象名.方法()
一:无参无返回值的方法 1、声明 【修饰符】 void 方法名(){ 方法体 } 2、调用 在其他类中:对象名.方法();
class NoParamNoReturnValue{ public static void mian(String[] args){ Student stu=new Student(); stu.name="V"; stu.age=25; stu.score=100; stu.printInfo();//无返回值是单独一个语句 } } class Student{ //属性 String name; int age; int score; //方法 省略修饰符 //1、声明一个方法,可以打印当前学生的信息 void printInfo(){ System.out.println("姓名:"+name+"年龄"+age+"成绩"+score); } }二、无参有返回值 1、声明格式 【修饰符】 非void的返回值方法 方法名(){
}
class NoParamNoReturnValue{ public static void mian(String[] args){ //1、创建对象 Account a =new Account(); a.id='19951230'; a.balance=1995; //调用a的printInfo() a.printInfo() //a的月利率 d= a.getMonthRate();//接收返回值。或者打印 } class Account{ String id; double balance; double rate=0.035; void printInfo(){ System.out.println("账户:"+id+"余额"+balance+"年利率"+rate); } double getMonthRate(){ return rate/12; } }三、有参无返回值的方法 1、声明 【修饰符】void 方法名(形参列表){ 方法体 } 形参列表的格式: (数据类类型 形参名) (数据类型1 形参名1,数据类型2 形参名2,…) 2、调用格式 (1)本类同级别 方法名(实参列表) (2)其他类中 对象名。方法名(实参列表) 3、两个名词 (1)形参列表:声明时()中 (2)实参列表:调用时()中
void printRectangle(int n,int m,char x){ } tool.printRecangle(3,5,'%');类也是引用对象
class MyDates{ int year; int month; int day; } class Cityzen{ Cityzen c =new Cityzen(); c.birthday=new MyDates();//MyDates是引用对象 c.birthday.year=1995; c.birthday.month=12; c.birthday.day=30; }方法的实参传递机制 1、形参是基本数据类型 实参赋值给形参是数据值,形参值修改不影响实参,因为实参是“copy”复制了一份数据给形参 2、形参是引用数据类型 行参是引用数据类型,实参赋值给形参的是地址值,如果形参修改了对象的属性值,那么实参对象的属性值也会修改 实参传给形参的是地址值,形参根据地址值找到堆里的值,然后方法中修改了半径的值,运行完后方法的内存释放掉,但此时半径的值已经修改了。 陷阱:在方法中加一句 c=new Circle(); 结果圆的半径没有改变 本来调用了方法之后,应该指向半径radius=1.0,但是在方法中新建了一个对象就会开辟一个新的内存空间默认值为0.0,扩大两倍还是0.0(执行完释放)再回到主方法中找到radius,值还是1.0
方法重载 再同一类中,出现了两个或多个方法名相同,形参列表不同,称为方法的重载。 形参列表不同:形参的个数,数据类型不同
public static double max(int a,int b){ }//不行和前面的形参列表一样且方法的重载和返回值类型无关,至于形参列表有关
可变参数 变量分类
数组存放的数据类型