面向对象学习(方法重载、方法参数的传递,构造方法,成员变量和局部变量)

面向对象学习(2)

1、方法重载
2、方法参数的传递
3、成员变量和局部变量
4、构造方法

1、方法重载

1.1、概述

  指同一个类中定义的多个方法之间的关系,需满足:
  (1)多个方法在同一个类中
  (2)具有相同的方法名
  (3)多个方法的参数不同(类型不同或者数量不同)

	public class Add {
	    int add(int a,int b){
	        return a+b;
	    }
	    double add(double a,double b,double c){
	        return a+b+c;
	    }
	    double add(double a,double b){
	        return a+b;
	    }
	     double add(double a,int b){
	        return a+b;
	    }
	    double add(int a,double b){
	        return a+b;
	    }
    }

  以上方法构成方法重载。

1.2、方法重载特点:

  (1)重载仅针对方法的定义,与方法的调用无关,调用格式参照标准格式
  (2)重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关。

2、方法参数的传递

2.1、对于基本数据类型的参数,形式参数的改变不影响实际参数的值

public static void main(String[] args) {
    int number=100;
    System.out.println("调用change方法前:"+number);//输出100
    change(number);
    System.out.println("调用change方法后:"+number);//输出100
}
    public static void change(int number){
        number=200;
    }

2.2、对于引用类型的参数,形式参数的改变影响实际参数得值(实际传递的是地址,形参和实参具有同一地址)

public static void main(String[] args) {
	int[] arr=new int[]{10,20,30};
		System.out.println("调用change方法前:"+arr[1]);//输出20
		change(arr);
		System.out.println("调用change方法后:"+arr[1]);//输出200
}
	public static void change(int[] arr){
		arr[1]=200;
	}

3、成员变量和局部变量

  成员变量的作用域是类的对象(所有成员);
  局部变量的作用域是该变量被声明的作用域;

public class Add {
	int x;//x、y是成员变量
	int y;
    int add(int a,int b){//a、b是局部变量
        return a+b;
    }
}

  如果成员变量和局部变量同名,则变量名指向局部变量(就近原则),此时应该用this.变量名来指向成员变量;

public class Add {
	int x;//x、y是成员变量
	int y;
    int add(int x,int y){//x、y是局部变量
        return x+y;//指向的是add();定义中的局部变量x、y
        this.x=2;//指向的是成员变量x。
    }
}

  成员变量有对应的默认值,局部变量没有默认值,如果没有初始化,就会编译报错。

public class Add {
	int x;//x、y是成员变量
	int y;
	public static void main(String[] args){
		int a;int b;
		//add(a,b);//a、b为局部变量,由于没有初始化,此时会报错
		 Add add1=new Add();
        add(add1.x,add1.y);//x、y是成员变量,系统有默认值,故不会报错
	}
    static int add(int x,int y){//x、y是局部变量
        return x+y;//指向的是add();定义中的局部变量x、y
    }
}

4、构造方法

4.1、构造方法定义

  每一个类默认有一个来自父类的空构造方法:

	/*	访问修饰符 构造方法名(){
			//初始化代码
		}*/	

  格式中无返回值类型、方法名与类名相同、可以指定参数

//public 类型名(){}//创造对象
public Add(){}//无参构造
public Add(inta,int b){}//有参构造

  一旦自定义了有参构造,原来的无参构造就不在提供,因此在定义有参构造同时,应该同时定义无参构造
  快速构造方法快捷键:
  Alt+Insert+Constructor
  或右键+Generate+Constructor

4.2、构造方法调用(创建类的对象并进行初始化)

//类型名 对象名=new 类型名(形参列表);//有参构造方法调用
//类型名 对象名=new 类型名();//无参构造方法调用,初始化的值是系统默认值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值