从对象说起_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 从对象说起

从对象说起

 2013/11/7 1:10:49  linhaoxiang  程序员俱乐部  我要评论(0)
  • 摘要:从对象说起首先了解到java语言是一种面向对象的语言,那什么叫面向对象呢?可以这么理解,java首先是为对象服务的,我的电脑,我的鼠标都是一个对象,首先从对象入手,就要先对对象来分类,这就引入了类的概念,我的电脑属于电脑类,我的鼠标属于鼠标类。这就将对象分好了类。接着要为对象服务,首先就要描述一个对象,描述对象我们从这几个方面入手。第一就是对象的特征,我们在java中称呼它为属性,第二就是对象的功能,在java中我们称呼它为方法。举个例子,我们从电脑来看。特征(属性):名字,外观,颜色,配置
  • 标签:
                               从对象说起
  首先了解到java语言是一种面向对象的语言,那什么叫面向对象呢?可以这么理解,java首先是为对象服务的,我的电脑,我的鼠标都是一个对象,首先从对象入手,就要先对对象来分类,这就引入了类的概念,我的电脑属于电脑类,我的鼠标属于鼠标类。这就将对象分好了类。
  接着要为对象服务,首先就要描述一个对象,描述对象我们从这几个方面入手。
第一就是对象的特征,我们在java中称呼它为属性,第二就是对象的功能,在java中我们称呼它为方法。举个例子,我们从电脑来看。
特征(属性):名字 ,外观,颜色,配置,型号。。。。。。
功能(方法):开机,上网,关机,画画。。。。。
这样就把一个对象给描述完成了,而java就是通过描述对象来实现对对象的服务机制。我们可以看到java通过对象的属性和方法来将对象分类。程序中的类就是根据生活中的对象或者类进行的一种定义。
  然后我们开始进入java语言学习,我们从大到小,先从类入手,先从编译器中创建一个类,注意的是类名要大写,然后是访问修饰符(private,public,protected,默认的)
格式为  public class 类名{
              
       访问修饰符 数据类型 属性名;
           
访问修饰符 返回值数据类型 方法名(数据类型 参数名,...){
//方法体
}
}
   注意的是类名之中不能有符号只能是字母,数字和下划线。
  在说说类中的东西,看接下来一段代码:
public class lin
{
    private String name;
    private int HP;
    private int GJL;
    private  int FYL;
    
    public void setName(String name){
    this.name=name;
    }
    public String getName(){
           return name;   
    }
   
    public void setHP(int HP){
    this.HP=HP;
    }
    public int getHP(){
           return HP;   
    }
    public void setGJL(int GJL){
    this.GJL=GJL;
    }
    public int getGJL(){
           return GJL;   
    }
    public void setFYL(int FYL){
    this.FYL=FYL;
    }
    public int getFYL(){
           return FYL;   
    }
    public void attack(lin a){
    a.HP=a.HP-this.GJL;
    }
    public void attack(lin a,lin b){
    a.HP=a.HP-this.GJL+a.FYL;
     }

      首先注意到属性的访问修饰符都是private,这样定义的属性只能在当前的类中调用,如果要在其他类中调用,就要设置两种方法来调用,以name属性为例,看下面一段代码:
     public void setName(String name){
    this.name=name;
    }
    public String getName(){
           return name;   
    }
  其中void表示空的数据类型,一般在没有返回值的函数中用到,为了可以在其他类中调用这个类中的属性,添加两个方法,set和get,这样观察以下一段代码:
  
      aa.setHP(10000);     
      if(aa.getHP()>0 && bb.getHP()>0)
这是从主函数中截取的两段代码,这样就可以调用其他类中的属性了。
     继续刚才那段代码,我们注意到this这个关键字,this关键字的用途广泛,主要是当一个对象调用一个函数时,this就表示调用函数的那个对象。具体情况以后会具体分析。
     然后说到类中一个很重要的东西,构造方法,首先我们要先了解方法分为两类,分别是构造方法和普通方法,上面所提到的像setName,getName,都是普通方法,对于构造方法,要注意构造方法的格式如下:
访问修饰符 构造方法名(数据类型 参数名,...){
//方法体
}

类中未定义构造方法时,java会默认提供一个构造方法(不带任何参数的构造方法)。
如果类中定义了构造方法,则默认的构造方法会被覆盖掉,不能使用默认的了,只能使用你自己定义的构造方法.
    作用:
1.给属性赋值
2.实例化对象

区别:
1.构造方法的是不需要定义返回值数据类型,普通方法必须要定义返回值数据类型。
2.构造方法的名字必须要和类名完全一致,普通方法的名字可以任意定义(不能是关键字)。
3.构造方法时用来是实例化对象,普通方法用来表示对象的行为.

   特别注意1.构造方法的名字一定要和类名一致。2.构造方法是用来实例化对象的,也只有它能够实例化对象。3.自己没有定义是系统会默认一个构造方法。
   还是观察下面一段代码:
public void attack(lin a){
    a.HP=a.HP-this.GJL;
    }
    public void attack(lin a,lin b){
    a.HP=a.HP-this.GJL+a.FYL;
我们发现者两个方法的名字一样但是里面的参数不一样,可以看出调用时只要参数设置不同就能得到两个方法,这个叫做方法的重载
实现方法重载的条件:
1.方法名必须要完全一致;
2.方法所带的参数个数、参数类型、参数顺序至少要有一个是不同的。

怎样调用呢?
根据参数的不同来决定调用不同的方法.

   好了我们已经知道如何去定义类了,在类中你可以添加类的属性和方法,当然就像小说一样,只有人物还是不够的,还需要剧情,所以我们还需要一个程序入口,也就是主函数,在主函数中你可以调用各个你编译好的类中的对象,属性,方法,来描述对象,接下来就说说如何实例化对象和调用方法。
    类名 对象名 = new 类名();

对象名.方法名(参数值,...);
这是在java中在主函数中调用方法和实例化对象的格式,不同类中的不同属性方法在主函数中通过循环嵌套等语句结构,就可以完成你想写的程序了。下面附上我的练习成果:
      
       public class Linhaoxiang
{

public static void main(String[] args)
{
//定义名字
lin aa = new lin();
lin bb = new lin();
lin cc = new lin();
//定义属性
aa.setName("迪迦奥特曼");
bb.setName("小怪兽");
cc.setName("Boss");

aa.setHP(10000);
bb.setHP(5000);
cc.setHP(8000);

aa.setGJL(1500);
    bb.setGJL(1300);
    cc.setGJL(1000);
    cc.setFYL(500);
//while循环   
if(aa.getHP()>0 && bb.getHP()>0){
aa.attack(bb);
System.out.println(bb.getName()+"的血量是"+bb.getHP());
bb.attack(aa);
System.out.println(aa.getName()+"的血量是"+aa.getHP());


}
if(aa.getHP()>0){
System.out.println("奥特曼赢了,可是Boss出现了");

}
else{
System.out.println("小怪兽赢了");
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
while(aa.getHP()>0&&cc.getHP()>0){

aa.attack(cc,cc);
System.out.println(cc.getName()+"的血量是"+cc.getHP());
cc.attack(aa);
System.out.println(aa.getName()+"的血量是"+aa.getHP());


}
//if
if(aa.getHP()>0){
System.out.println("迪迦闯关成功");

}
else{
System.out.println("迪迦闯关失败");
}
}
}

[b][/b]
  • 相关文章
发表评论
用户名: 匿名