`
轻狂书生1
  • 浏览: 3214 次
  • 性别: Icon_minigender_1
  • 来自: 青州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

类和对象的总结(新手首发,写的不好,大家多多指教)

阅读更多
1. 类和对象的定义
对象是指一个具体的事物或物体,对象可以从它的特征和用途来描述


而类是有相同或相似属性的全体对象的集合,又由于java中的类是面

向对象的,故这个类必须是能够描述这些对象的相同或相似属性邪恶最一般的

模版,这个模板就是一个class。在在主文件中通过调用构造函数来实现,其模

版的功能。
2. 类的结构(格式)
由于类是面向对象的,而描述对象要从对象的特征和用途两方面考虑


1.定义特征的格式为:
private 数据类型 属性名;
2.定义用途的格式为:
public 返回值数据类型 方法名(数据类型 参数名){
//这里填程序
}
调用格式为:
对象名.方法名(参数值);
(注意@:若想用途函数中带两个或两个以上的参数 ,就用“,”分隔

符隔开)
3.构造函数
为使定义的类能在主函数中被调用必须构造一个构造函数,若不创建

构造函数,系统会默认构造函数为无参数构造函数,
其格式为:
public 类名(){}
其调用方式为:
类名 对象名= new 类名();
其他类型的构造函数还有:
public 类名(数据类型 参数){}
(注意:若想带多个参数则同注意@)
在一个类中可以定义多个构造器函数,这种方法叫构造器重载。
在主函数中可以只使用一个构造器,系统会根据主函数的格式选择适

当的构造器;如果类中定义了构造器函数,则主函数中不能使用默认构造器函

数。
4.同样的方法也适用于一般函数的重载,这里不细说。
3. 构造器函数与一般函数的区别:
1.构造方法不能定义返回值数据类型;普通方法必须要定义返回值数

据类型;
2.构造方法的方法名必须和类名完全相同;普通方法的方法名可以任

意定义;
3.构造方法是用来实例化对象的;普通方法方法用来执行对象的行为


4.构造方法每调用一次就实例化一个新的对象;普通方法只要对象不

变,调用的还是同一个方法。
4.this关键字
当参数名和属性名相同的时候,使用this来区分,加了this的表示属

性,没有加的则是参数。
哪一个对象在调用方法,那么方法中的this关键字就表示该对象。
5.值传递和引用传递
值传递:值传递适用于java所有的基本数据类型和String类型
byte   , short  int   long float  double char

boolean.

引用传递:
引用传递适用于java所有的引用类型(类类型,对象类型).
(注意:引用传递传的是地址)
下面是一个关于类与对象的程序:
//这是一个boss类
public class Boss{

//声明名字属性
private String name;
//声明血量属性
private int blood;
//定义一个设置名字属性的方法
public void setName(String n){
//将参数n的值赋值给name
name=n;

}
//定义一个设置血量属性的方法
public void setBlood(int n){
//将参数n的值赋值给blood
blood=n;

}
//定义一个返回姓名属性的方法
public String getName(){
return name;
}
//定义一个返回血量属性的方法
public int getBlood(){
return blood;
}
//定义一个剑圣减血行为
public void fight2(Jiansheng js){
js.setBlood(js.getBlood()-250);
System.out.println(name+"打了剑圣250点血,剑圣还

剩"+js.getBlood()+"点血");
}



}







//这是一个人物类
public class Jiansheng{
//声明剑圣的姓名属性
private String name;
//声明剑圣的血量属性
private int blood;
//定义一个设置姓名属性值的方法
public void setName(String n){
//将参数n的值赋值给name
name=n;
}
//定义一个设置血量属性的方法
public void setBlood(int n){
//将参数n的值赋值给blood
blood=n;
}
//定义一个返回姓名属性值的方法
public String getName(){
return name;
}
//定义一个返回血量属性值的方法
public int getBlood(){
return blood;
}
//定义一个减血行为
public void fight1(Boss bs){
bs.setBlood(bs.getBlood()-2500);
System.out.print(name+"打了boss2500点血,boss还

剩"+bs.getBlood()+"点血");


}



}






//这是主函数
public class Main{
//定义程序入口的主函数
public static void main(String [] args){
//实例化一个剑圣对象
Jiansheng js=new Jiansheng();
//设置js名字
js.setName("剑圣");
//设置js血量
js.setBlood(18000);
//实例化一个boss对象
Boss bs=new Boss();
//设置boss名字
bs.setName("boss");
//设置boss血量
bs.setBlood(180000);
while((bs.getBlood()>0)&&(js.getBlood()>0)){
js.fight1(bs);
if(bs.getBlood()<=0){
System.out.print("剑圣胜利");
break;
}
bs.fight2(js);
if(js.getBlood()<=0){
System.out.print("boss胜利");
break;
}
}


}

}
0
5
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics