对封装的理解

来源:互联网 发布:足球游戏源码 编辑:程序博客网 时间:2024/05/19 22:26

 

我们为什么需要封装?

在面对对象编程中,我们会封装对象的属性和方法,通常我们将封装内容设为私有(private),那么在其他类中怎么给对象实例化,初始化具体属性呢,构造方法帮我们解决了这个问题,构造方法其他类提供了访问本类中的私有属性和方法的渠道。通过方法的重载我们可以初始化相同类下(具有一些相同属性和行为)的多个对象。

封装:能够实现访问权限的控制。

 

注意点:

类中写上属性和方法

私有属性要提供公开的方法去访问

提供公开的方法,是对属性赋值和取值

一个属性同时具备gettersetter方法

类中属性初赋值:

定义时赋初值

setter设置器

通过构造方法赋值

方法的重载:

方法的重载一般在同一个类中

方法重载的形式: 方法名相同、返回值类型相同、参数列表不同

方法重载一般最少是两个方法(构造方法重载、实例方法重载)

方法重载的作用:

构造方法重载:能够初始化类中不同属性

实例方法重载:重载可以共用一个方法名执行不同的操作。

参数列表:参数个数 参数类型  参数的位置

方法重载的时候,只有类加载到虚拟机里面。虚拟机会根据传递的具体参数调用具体的方法   例如:System.out.println();

构造方法具有以下几个要素:

  1.构造方法与类同名,首字母大写

  2.构造方法没有返回值,也不需要void修饰

  3.构造方法的作用 :a)能够初始化类中的属性  b)能够创建出类的对象

  4.构造方法可以重载,构造方法的默认修饰符是public,也可以private

 5.一个类中如果我们没有定义构造方法,其实编译器会自动加上一个无参数的构造方法(隐式构造方法)

  6.如果在类中我们自定义一个构造方法(显式构造方法),默认的隐式构造方法将会失效

  7.构造方法(函数)可以传递参数(有参数的构造方法),通过不同的参数可以创建不同的对象

  8.类中属性赋初值:a)构造方法      b)Setter 设置器   c)定义时候赋初值

  

   9.类可以选择某一个构造方法创建其对象

10. 构造方法的重载实现定义多个不同对象

11.调用本类下的构造方法用this.()调用父类中的构造方法用Super.()

例子:

我们定义人(people)这个类,该类属性namesex、 age三个私有属性,新建 zhangsan类,

通过people类构造方法确定张三这个对象,(性别男,年龄20)。代码如下:

package Prac;

public class People {

/*声明属性*/

  private String name;  //姓名

  private int age;     //年龄

  private String sex;  //性别

  

 

  /*构造方法*/

public People(String name, int age, String sex) {

super();

this.name = name;

this.age = age;

this.sex = sex;

}

/*settergetter方法*/

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

  

 

  

}

package Prac;

public class Zhangsan {

/**

 * 张三类

 * 

 */

public static void main(String[] args) {

People zhangsan=new People("张三",20,"");  //调用people类内构造方法给people类内私有属性赋值

System.out.println("我的名字叫"+zhangsan.getName()+"\n我的年龄是:"+zhangsan.getAge()+"\n性别:"+zhangsan.getSex());

}

}

打印结果:

     我的名字叫张三

     我的年龄是:20

     性别:男