封装的概述:
是面向对象的三大特征之一(封装、继承、多态)。
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部,外界是无法直接操作的。
封装原则:
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现隐藏信息的操作和访问成员变量private,提供对应的getX()/setX()方法。c
封装的好处:
通过方法来控制成员变量的操作,提高了代码的安全性。
把代码用方法进行封装,提高了代码的复用性。
构造方法概述:
构造方法是一种特殊的方法。
作用:创建对象
格式:
public class类名 {
修饰符 类名(参数){
}
}
功能:主要是完成对象数据的初始化。
public class Student{
String name;
int age;
public Student(){
System.out.println("这是无参构造方法");
}
}
构造方法的注意事项:
(1)构造方法的创建:
如果没有定义构造方法,系统将给出一个默认的无参构造方法。
如果定义了构造方法,系统将不再使用默认的构造方法。
(2)构造方法的重载
如果定义了带参构造方法,还要使用无参构造函数,就必须再写一个无参构造方法。
(3)推荐的使用方式:
无论是否使用,都手工书写无参构造方法。
下面我们通过方法的重载演示一下:
public class Student {
int age ;
String name ;
public Student(){} //无参构造方法
public Student (int age){ //带age参数的构造方法
this.age=age;
}
public Student (String name){ //带name参数的构造方法
this.name=name;
}
public Student (int age,String name){ //带两个参数的构造方法
this.age=age;
this.name=name;
}
}
测试类StudentDemo
public class StudentDemo{
public static void main(String[] args){
Student s = new Student(); //无参构造方法。
Student s1 = new Student(18); //带age参数的构造方法。
Student s2 = new Student("张三"); //带name参数的构造方法。
Student s3 = new Student(18,"张三") //带两个参数的构造方法。
}
}
制作一个标准类:
我们来写一个标准的类:
内容包括:
(1)成员变量 :使用private关键字来修饰
(2)构造方法: 提供一个无参的构造方法和一个带多个参数的构造方法。
(3)成员方法:提供每一个成员变量对应的SetXxx()/getXxx();
提供一个显示对象的show()方法
(4)创建对象并为其成员变量赋值的两种方式:
无参构造方法创建对象后使用setXxx()赋值。
使用带参构造方法直接创建带有属性值的对象。
代码演示:
package Class;
public class DogTest {
public static void main(String[] args) {
// Dog dog= new Dog();
// dog.setName("毛毛");
// dog.setAge(1);
// dog.show();
Dog dog = new Dog("毛毛", 2);
dog.show();
}
}
class Dog {
private String name;
private int age;
public Dog() {
}
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void show() {
System.out.println("狗狗的名字:" + name + "\n" + "狗狗的年龄:" + age);
}
}