类与对象及方法重载

1、 类与对象
我们通常把在某些方面具有相同特征的事物集合定义成一个类,它是一个主观的、抽象的集合,如人类,水果,它没有具体到某一个物品,一般用属性(特征)和方法(行为)来描述类;而与之相对的,我们把一些客观存在的事物称为对象,它是具体的某一件物品,如你的电脑,他的手机,等等。
我们在定义类时,采用如下基本格式:
首先定义类:public class 文件名{}
其次定义属性:public 属性类型 属性名;
最后定义方法:public 返回类型 方法名(参数类型 参数名){}
我们定义完一个类后,只是提供了一个做事情的平台,如果想要得到一个具体的结果,就需要实例化一个对象。基本格式如下:
类名 对象名 = new 类名();
属性赋值 对象名.属性名=属性值;
方法调用 对象名.方法名(参数);
下面通过一个简单的Java代码来说明:
//定义一个学生类
public class Student{
//定义属性(特征)
public String name;

//定义方法(行为):
public void study(){
System.out.println(name+"学生正在听课!");
}

}

//定义一个老师类
public class Teacher{
//定义属性(特征)
public String name;

//定义方法(行为)
public void teach(){
System.out.println(name+"老师正在上课!");
}
}
]//定义一个管理类
public class Manager{
//主函数
public static void main(String[] args){
//创建学生对象和老师对象
Teacher tea = new Teacher();
Student stu = new Student();

//给老师和学生赋名字
tea.name = "张三";
stu.name = "李四";

//调用教和学的方法
tea.teach();
stu.study();

}

2、 方法重载
1)我们知道,在一个Java程序中,如果有两个或多个名字相同的方法,我们必须将它们加以区分才能成功地实现调用。这个过程,就是方法重载。也可以说在同一个类中,两个或者多个方法名相同,但是参数不同的方法互为重载方法。
我们识别重载方法的三个条件,首先必须在同一个类中,其次,要有相同的方法名,最后,参数不同(即参数类型、参数个数或是参数顺序不同)。
2)构造方法,每一个类中都会有一个默认的构造函数,一般它没有直接定义,但是在创建对象的过程中,它就被执行了。
定义格式:
public 类名(参数类型 参数名){}

构造方法同一般方法的区别:
构造方法和一般方法相比没有返回类型,但是会有一个返回值,返回的是对象的内存地址;构造方法的方法名必须和类名相同,一般方法没有要求;
构造方法在创建对象时即被调用,一般方法在创建对象后调用。

构造方法重载用于初始化一些属性。
如果重载了默认的无参构造方法,那原来的无参构造函数就不存在了,如需要使用必须重新定义出来。
下面为完整的例子:
public class Police{
//定义有参构造方法
public Police(String str,int b){
name=str;
blood=b;
}
//定义属性(姓名,血量)
public String name;
public int blood;
//定义攻击方法
public void attack(Bandit b){
b.blood--;
System.out.println(name+"警察攻击了"+b.name+"土匪!");
}


}
public class Bandit{
//定义有参构造方法
public Bandit(String str,int b){
name=str;
blood=b;
}
//定义属性(姓名,血量)
public String name;
public int blood;
//定义攻击方法
public void attack(Police p){
p.blood--;
System.out.println(name+"土匪袭击了"+p.name+"警察!");
}
}
public class Manager{
public static void main(String[] args){
//创建警察对象和土匪对象并赋值
Police pol=new Police("李明",10);
Bandit ban=new Bandit("王刚",10);
//调用攻击方法
pol.attack(ban);
while(ban.blood>=0){
ban.attack(pol);
if(pol.blood<0){
System.out.println("土匪赢了");
return;
}
pol.attack(ban);
}
System.out.println("警察赢了");
}
}

3、this关键字
this关键字的用途:
a、用来区分属性名和参数名(前提是属性名和参数名相同)
b、调用构造方法
c、表示当前调用方法的对象
注意:this只能调用当前类中的属性和方法

4、值传递
值传递适用于Java的八种基本数据类型以及String类型。

5、引用传递
引用传递适用于java的引用类型,如类、接口、抽象类和数组,也可以叫做对象类型,类类型等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值