封装、重载和构造

封装和重载

封装三步:

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

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

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

重载:

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

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

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

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

    (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());

}

}


类的继承、构造封装以及构造方法重载是面向对象编程中的核心概念。以下是对这些概念的详细介绍: ### 类的继承 类的继承是指一个类(子类)可以继承另一个类(父类)的属性方法。继承使得子类可以复用父类的代码,并且可以在此基础上进行扩展修改。继承的主要目的是实现代码的重用扩展。 ```java public class Animal { public void eat() { System.out.println("Animal is eating"); } } public class Dog extends Animal { public void bark() { System.out.println("Dog is barking"); } } ``` 在上面的例子中,`Dog`类继承了`Animal`类,因此`Dog`类可以使用`eat`方法,并且还添加了一个新的方法`bark`。 ### 构造方法 构造方法是一种特殊的方法,用于创建类的对象。构造方法的名字必须与类名相同,并且没有返回类型。 ```java public class Person { private String name; private int age; // 构造方法 public Person(String name, int age) { this.name = name; this.age = age; } public void display() { System.out.println("Name: " + name + ", Age: " + age); } } ``` 在上面的例子中,`Person`类有一个构造方法,用于初始化`name``age`属性。 ### 封装 封装是指将类的属性方法包装在一起,并对外部隐藏内部的实现细节。通过封装,可以提高代码的安全性可维护性。封装通常通过使用访问修饰符(如`private`、`public`等)来实现。 ```java public class Car { private String brand; private int year; // 构造方法 public Car(String brand, int year) { this.brand = brand; this.year = year; } // gettersetter方法 public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } } ``` 在上面的例子中,`Car`类的属性`brand``year`被封装起来,通过`getter``setter`方法来访问修改这些属性。 ### 构造方法的重载 构造方法的重载是指在一个类中可以定义多个构造方法,这些构造方法具有相同的名字但参数不同。编译器根据参数的个数类型来决定调用哪个构造方法。 ```java public class Rectangle { private int width; private int height; // 无参构造方法 public Rectangle() { this.width = 0; this.height = 0; } // 有参构造方法 public Rectangle(int width, int height) { this.width = width; this.height = height; } public void display() { System.out.println("Width: " + width + ", Height: " + height); } } ``` 在上面的例子中,`Rectangle`类有两个构造方法,一个是无参构造方法,另一个是有参构造方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值