Java封装和继承 小白版

封装

使用对象的方法将对象的变量和方法保护起来,就称为封装。外界只能通过对象的接口(方法)访问对象的服务。

封装就是隐藏对象的属性和实现细节,仅提供公共访问方式来让外界访问

快捷键:Alt+insert——>Getter and Setter

封装的好处

  • 隐藏类的实现细节
  • 只能通过规定方法访问数据
  • 方便加入控制语句
  • 方便实现修改

封装原则

  • 将不需要对外提供的内容都隐藏起来。
  • 把属性都隐藏,提供公共方法对其访问。

封装的步骤

  • 修改属性为私有设为private;
  • 创建getter和setter方法,设为public用于属性的读写;
  • 在gettter和setter方法中加入属性控制语句,用于对属性的合

封装的意义

1.模块化

使得对象的代码能够形成独立的整体,单独进行实现与维护。

2.保证对象数据的一致性并易于维护

对象的变量和实现通过对象的接口进行封装,实现了隐蔽,这使得对象的私有信息被有效的保护起来,防止外界对对象私有信息的修改,保证了信息的一致性;

开发者可以随时改变对象的私有数据和方法,而不影响调用对象接口的其他程序。

实例

public class Person {
    //父类公共的属性(封装name,age属性)
    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;
    }
}
public class Test02 {
    public static void main(String[] args) {
        Person p = new Person();
        p.setName("椰椰");
        p.setAge(22);
        System.out.println(p.getName() + " ," + p.getAge());
    }
}

继承

继承使得子类具有父类的属性和方法,还可以在原有类的基础上进行扩充,添加新的变量和方法。

继承的分类

继承分为单继承和多继承。单继承是一个子类最多只能有一个父类;多继承是一个子类可以有两个以上的父类。

注:Java中的类只支持单继承,而接口支持多继承,即Java多继承的功能是通过接口的方式来间接实现。

继承的实现(格式)

//子类定义的一般格式:
[ 类修饰符 ] class 子类名 extends 父类名{
   成员变量;
   成员方法;
}

实例

//父类
public class Person {
    //父类公共的属性
    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;
    }

    public void eat(){
        System.out.println("人类吃饭");
    }
}
//子类
public class Student extends Person{ //子类Student继承父类Person
    //子类额外的、扩展的属性
    private int sno;

    //子类额外的、扩展的方法
    public int getSno() {
        return sno;
    }

    public void setSno(int sno) {
        this.sno = sno;
    }

    public void study(){
        System.out.println("学生学习");
    }
}
//测试类
public class Test {
    public static void main(String[] args) {
        //定义一个学生类对象
        Student s = new Student();
        s.setName("椰椰") ;
        s.setAge(22);
        s.setSno(10086);

        System.out.println(s.getName()+","+s.getAge()+","+s.getSno());

        s.study();
        s.eat();
    }
}
posted @ 2024-08-12 23:26  椰椰210162701037  阅读(12)  评论(0编辑  收藏  举报