说类与对象,类是一个模板,用来定义对象的数字域是什么以及方法是作什么的。

  一个对象则是类的一个实例。

  我们可以从一个类中创建多个实例。创建实例的过程称为实例化。

  类中使用变量定义数字域,使用方法定义动作,除此之外,类还提供一种称之为构造方法的特殊类型方法,调用他可以创建一个新对象。构造方法本身是可以完成任何动作的,但设计构造方法是为了完成初始化动作,例如:初始化对象的数据域。

  下面: 我们定义一个类, 公交车。("//”表示注释  后面接任何数值都不会影响代码本身)

  创建类的格式是:public class 类名{} 

public class bus {

}

   每个对象都会有不同的特征,也可以叫属性他们是由具有当前值的数据域来表示的。

 例如:公交车我们分析一下,他的属性有什么。

 比如说:什么颜色、什么品牌、尺寸等等。

 那么这些属性我们用什么表示呢,可以用 字符串 String来表示、整数 int、小数 double。

 颜色、品牌我们可以用字符串表示、尺寸我们可以用整数表示。

 定义属性的格式: public 属性类型 属性名; 

    public String brand;
    public String colour;
    public int size;    

  一个对象的行为,也称为动作,就是我们说的方法。调用对象的一个方法就是要求对象完成一个动作。例如我们定义一个公交车前进(Forward)的方法。

 普通方法的格式:public void 方法名(参数类型 参数名,.....){方法需要执行的内容}  void 方法没有返回值

//定义一个普通方法 
    public void Forward(){
    //输出 这是公交车前进的方法
    System.out.println("这是公交车前进的方法");
    }

  上面我们说到一个构造方法,它可以实例化对象、给属性设置初始值、完成方法中的动作。

  格式: public 构造方法名(数据类型 参数名,....){}

  这里呢我们需要注意三点:

  1.构造方法不能定义返回值数据类型;

  2.构造方法必须要跟类名完成一致;

  3.java类中会默认提供一个无参数的构造方法,自定义了构造方法后,默认的构造方法就会被覆盖,无法使用,你只能使用你自定义的构造方法。

  不同的对象带着不同的属性参数,就用到方法的重载。

  方法的重载:

  1.方法名必须要完成一致:

  2.方法所带的参数个数、参数类型、参数顺序至少要有一个不同。

   重载普通方法:

//重载一个普通方法 加入参数类型 参数名
    public void Forward(String colour){
    //输出 这是公交车前进的方法 颜色是
    System.out.println("这是公交车前进的方法"+"颜色是"+colour);
    }

  重载构造方法:

//重载构造方法    
        public bus(String brand){
            this.brand=brand;
            System.out.println("这是带一个参数的构造方法"+"品牌是"+brand);
    }

  重载构造方法:

//重载一个构造方法
    public bus(String brand,int size){this.brand=brand;
        this.size=size;
        System.out.println("这是带两个参数的构造方法"+"品牌是"+brand+"尺寸是"+size);  
    }

这里有一个this关键字。

  java中当参数名和属性名一致时,java会采用就近原则;

  1.this.属性名

  当参数名和属性名一致时,可以使用this关键字做区分,加上this.表示属性,没有加的则表示参数。

  2.this(参数值,...);

  调用当前对应参数的构造方法。3.this.普通方法名(参数值,...);调用当前对象中的普通方法。

  3.this.普通方法(参数值,...);

  调用当前对象中的普通方法。

  那么这个this到底是谁呢?this是用来表示对象的;谁在调用方法,方法中的this就表示谁。假设a对象在调用方法,这方法中的this就是a。类似生活中“我”这个词。

然后加入一个主方法再代码整合到一起。

//创建一个公交车的类 格式:public class 类名{}
public class bus {

    public String brand;
    public String colour;
    public int size;

    //定义一个普通方法 
        public void Forward(){
            //输出 这是公交车前进的方法
            System.out.println("这是公交车前进的方法");
    }
    //重载一个普通方法 加入参数类型 参数名
        public void Forward(String colour){
            //输出 这是公交车前进的方法 颜色是
            System.out.println("这是重载公交车前进的方法"+"颜色是"+colour);
    } 
    //重载构造方法    
        public bus(String brand){
            this.brand=brand;
            System.out.println("这是带一个参数的构造方法"+"品牌是"+brand);
    }
    //重载构造方法
        public bus(String brand,int size){
            this.brand=brand;
            this.size=size;
            System.out.println("这是带两个参数的构造方法"+"品牌是"+brand+"尺寸是"+size);
    }
//定义一个主方法
    public static void main(String[] args){
        //实例化对象
        bus b=new bus("大奔");
        b.Forward();
        b.Forward("红色");
        
        bus a=new bus("别克",20);
        a.Forward();
        a.Forward("黑色");
    }
    }

然后运行一下:

这是带一个参数的构造方法品牌是大奔
这是公交车前进的方法
这是重载公交车前进的方法颜色是红色
这是带两个参数的构造方法品牌是别克尺寸是20
这是公交车前进的方法
这是重载公交车前进的方法颜色是黑色

当然还有一种我们需要使用外部参数的方法 “就是没有列出来的属性“。

  方法格式:

 public void 方法名(参数类型 msg){

  System.out.println(“”+msg+””);}

  主方法中实例化并调用方法的格式:  

 参数类型  参数名 =参数的赋值;

  对象名.方法名(参数名);

  

    

      

posted on 2018-12-20 14:18  张裕泉  阅读(283)  评论(0编辑  收藏  举报