文章目录
- 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
- this([参数值,参数值,…])
- this表示类名称. 类名()==this();
this.属性
this表示对象的引用
this表示类名称,用于解决构造函数相互调用.
格式: this([参数,参数,…])
要求:
1、this([参数,参数,…])只能编写在构造函数中,不能在普通函数中编写。
2、this([参数,参数,…])必须作为方法体的第一行有效代码。 - 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);//必须按照参数...传递值
}
}