java的面向对象

来源:互联网 发布:数据网络开关 编辑:程序博客网 时间:2024/05/22 15:01

面向对象的三大特征

•  封装(encapsulation)
•  继承(inheritance)
•  多态(polymorphism)

类中的成员用来描述成员的特性,类的成员有成员变量和成员函数。

一个类所定义的属性被其他对象访问所加的(访问控制修饰符)所限制

这是访问控制修饰符的访问范围 

修饰符

  类

 子类

 包

  包外

public

  可见  

  可见  

  可见  

  可见  

..(default)

  可见  

  可见

  可见

 

protected

  可见  

  可见

 

 

private

  可见  

 

 


构造方法  

为了便于使用new关键字创建对象实例,类提供了构造函数,构造方法特点如下:

①构造方法与类名相同,不返回任何数据。不被继承,也不抛出异常

②可以使用new关键字创建实例对象,会自动调用该构造函数

③当类中没有构造函数时,编译器会自动给类中加上一个无参的空构造函数

下面的程序就会报错,因为存在构造方法,所以编译器就不会添加默认的构造方法

public class Test{    public static void main(String[] args){        Person p = new Person();    }}class Person{    private String name;    Person(String name){        this.name = name;    }}

每个对象的每个实例方法都拥有一个this变量指向对象自己,供自己的方法内部代码中使用,上面的this变量就是指向一个Person类的实例。

构造代码块

作用:

        给对象进行初始化。对象一建立就运行,而且优于构造函数执行。

和构造函数的区别:

        构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象进行初始化。

示例:

public class Test {    public static void main(String[] args)    {        Student p = new Student("lisir");    }}class Student{    private String name;        {  //这是构造代码块,优于构造函数执行        System.out.println("构造代码块");    }    Student(String name){        this.name = name;        System.out.println("构造函数");    }}

输出结果为:

构造代码块
构造函数

封装是类的三大特征之一,是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

封装原则:
① 将不需要对外提供的内容都隐藏起来。(使用private关键字)
② 把属性都隐藏,提供公共方法对其访问。(根据需要提供getset方法)

下面是一个典型的类的封装性的代码

class Student{    private String name;    private int age;    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;    }    Student(String name,int age){        this.name = name;        this.age = age;    }}

使用getNamesetName方法得到和设置name属性,getAgesetAge方法得到和设置age属性。这样就实现了数据的封装。


0 0
原创粉丝点击