封装、重载和构造

封装和重载

封装三步:

一:修改属性的可见性来限制对属性的访问;

二:为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问;

三:在赋值和取值犯法中,加入对属性的存取限制。

重载:

  (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。

重载Overloading是一个类中多态性的一种表现。

    (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。

调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

扫描二维码关注公众号,回复: 1036403 查看本文章

    (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

构造方法:

1.构造方法的方法名必须与类名一样。

2.构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

3.构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域

4.构造方法不能由编程人员调用,而要系统调用。

5.构造方法可以重载,以参数的个数,类型,或排序顺序区分。

Student     //类

public class Student{        //private私有变量

private String name;         //定义属性

private int rp;

private int age;

//getter和setter方法

public void setName(String name){

       this.name=name;

}

public String getName(){

      return name;

}

public void setRp(int rp){

     if(rp<1 || rp>10){

            System.out.println("输入有误");

            this.rp=1;   //人品默认值为1

     }else{

            this.rp=rp;

       }

}

public int getRp(){

     return rp;

}

public void setAge(int age){

     if(age<0 || age>150){

           System.out.println("输入有误");

            this.age=20;     //年龄默认值为20

     }else{

            this.age=age;

       }

}

public int getAge(){

     return age;

}

public Student(){

     this.name="小新";

     this.rp=8;

     this.age=18;

}

public Student(Stirng name,int rp,int age){

     this.setName(name);

     this.setRp(rp);

     this.setAge(age);

}

System.out.println("我的名字是"+name+",我的人品值是"+rp+",我的年龄是"+age);

}

TestStudent       //类

public class TestStudent{

public static void main(String[] args){

Student xiaoxin=new Student();    //创建对象

//  xiaoxin.setName("小新");

//  xiaoxin.setRp(8);

//  xiaoxin.setAge(18);

System.out.println("我的名字是"+xiaoxin.getName()+",我的人品值是"+xiaoxin.getRp()+",我的年龄是"+xiaoxin.getAge());

Student xiaoli=new Student("小李",3,20);

System.out.println("我的名字是"+xiaoli.getName()+",我的人品值是"+xiaoli.getRp()+",我的年龄是"+xiaoli.getAge());

}

}


猜你喜欢

转载自blog.csdn.net/yangxiaoyue222/article/details/80184196