文章目录

  • 1、构造方法
  • 1.1、构造方法的重载(多态性)
  • 2、方法的重载(多态性)
  • 2.1、方法的参数传递(带参数的方法)
  • 3、方法调用
  • 3.1、调用方式
  • 3.1.1、直接调用
  • 3.1.2、对象调用
  • 3.1.3、类名调用
  • 4、关键字this
  • 4.1、this属性


1、构造方法

构造方法名必须跟类名一样。

public 构造方法名(){

			}

1.1、构造方法的重载(多态性)

1、构造方法重载即写多个参数不一样的构造器。构造方法重载是为了实现构造方法的重用,重载是java多态性的一种体现。
2、方法重载有如下规则:
  A:方法名一样;
  B:方法参数不一样(类型、顺序、数量);
例:构造方法名一样,传的参数值不一样,调用的也不一样

1、public 构造方法名(){
				
}

public Student() {
	System.out.println("--------无构造函数-----------");
}
	/**
  	* 有参构造函数
	*/
public Student(long id,String name){
	this.id = id;
	this.name = name;
}

2、方法的重载(多态性)

方法签名:方法的识别关键字。
  方法签名 = 方法名+参数类型列表;
  Java 类中不能存在相同方法签名的方法;
  方法重载:方法名一样, 方法签名不同的方法 ,重载体现了功能的多态,重载的方法经常互相重用。

例:同一个方法名,传参数不一样则调用不一样的方法

public int add(int a,int b){
				return a+b;
			}
			public float add(float a,float b){
				return a+b;
			}.
			public float add(float a,int b){
				return a+b;
			}

2.1、方法的参数传递(带参数的方法)

Java方法参数传递只有一种方式:值传递

基本类型就是其中值的复制;
  解:基本类型给的值是什么就是什么。
引用类型是引用值(地址)的复制;
  解:引用类型给的值是什么就加上传递的值

例:int a,int b 就是传递的参数

public int add(int a,int b){
	return a+b;
}

3、方法调用

java类中主要含有: 属性和方法.
  方法: 将现实事物的动态属性抽象为java对象的方法.每个方法含有不同的功能.但是在一个java项目中,经常需要多个功能联合使用,可能发生方法之间的调用。

3.1、调用方式


1、直接调用;
  2、对象调用;
  3、类名调用;

3.1.1、直接调用

要求: 被调用方法必须和当前方法在同一个类中
格式: 方法名();
注意:static修饰的方法只能调用static修饰的变量和方法

例:

publicvoid t1() {
	System.out.println("this  is  方法调用一.t1()........");
}
	
publicvoid t2() {
	t1();//直接调用t1();
	System.out.println("this  is  方法调用一.t2()........");
}

3.1.2、对象调用

要求: 必须已经创建了相应的对象,才能调用该对象的方法[属性和方法属于对象的]
 格式: 对象.方法名();

例:

publicvoid t1() {
	//创建相应的对象
	方法调用二  f=new 方法调用二();
	//使用对象调用
	f.t2();
	System.out.println("这是对象调用t1()..........");
}
	
publicvoid t2() {
	System.out.println("这是对象调用t2()...........");
}

3.1.3、类名调用

要求: 被调用方法必须被static修饰
 格式: 类名.方法名();
思考: 一个方法被static修饰后,该方法将不再属于某个对象,而属于公共。


注意:被static修饰的方法可以使用类名调用,也可以使用直接调用,对象调用.建议使用类名调用。



例:

publicvoid t1() {
	方法调用三.t2();//类名调用
	t2();//直接调用
	方法调用三  f=new 方法调用三();
	f.t2();//对象调用
	System.out.println("这是t1......");
}
	
publicstaticvoid t2() {
	System.out.println("这是t2......");
}

4、关键字this

  1. this([参数值,参数值,…])
  2. this表示类名称. 类名()==this();
      this.属性
        this表示对象的引用
        this表示类名称,用于解决构造函数相互调用.
      格式: this([参数,参数,…])
     要求:
       1、this([参数,参数,…])只能编写在构造函数中,不能在普通函数中编写。
       2、this([参数,参数,…])必须作为方法体的第一行有效代码。
  3. java系统中不允许构造函数之间 直接/间接相互调用形成死循环. 通常使用this作为构造函数相互调用的出口。

例:

publicclass Demo {
	public Demo() {
		//Demo(20);直接调用
		this(20);//必须编写在有效代码第一行;
		System.out.println("demo()........无....");
	}

	public Demo(int a) {
		//this();//this()  等价于  Demo();
		System.out.println("demo(int  a)........有....");
	}
}

4.1、this属性

作用:
  1.解决全局变量和局部变量名称冲突,按照就近原则处理后,无法使用全局变量问题。
  2.解决全局变量和参数名称冲突,按照就近原则处理后,无法使用全局变量问题。

publicclass this关键字二 {
	int a=25;//全局变量相当于属性
	public void show() {
		int a=50;//局部变量
		//当全局变量和局部变量命名冲突后,java程序按照"就近原则"处理
		System.out.println("a的值为:"+a);//50
		//this关键字二  t=new this关键字二();
		//操作对象的属性:对象名.属性名;
		//System.out.println("a的值为:"+t.a);
		System.out.println("a的值为:"+this.a);
	}
	
	//封装
	public void sum(int a) {//参数的编写实质为局部变量
		//编写一个局部变量测试
		//int a=10;//java程序中同一作用域不能声明相同变量名的变量
		//当全局变量和参数命名冲突后,java程序按照"就近原则"处理
		System.out.println("a的值为:"+a);
		System.out.println("a的值为:"+this.a);
	}	
	
	public static void main(String[] args) {
		this关键字二  t=new this关键字二();
		t.show();
		t.sum(99);//必须按照参数...传递值
	}
}