Java面向对象三要素 | 您所在的位置:网站首页 › 实验三大要素是什么 › Java面向对象三要素 |
文章目录
一、封装
1 定义
2 this关键字
二、继承
1 定义
2 super关键字
3 重载与重写
重载
重写
三、多态
1 抽象类
2 接口
3 类型转换
面向对象三要素:封装、继承、多态 一、封装 1 定义细节(变量和方法)隐藏,成员变量设置为私有(private),然后提供set和get方法读和取。 通俗的讲,封装就是不允许直接访问成员变量,必须通过set和get方法来访问。 优点:安全,便于重构。 public class ThreeDemo { private String userName; //set方法:给私有化变量赋值 public void setUserName(String v) { userName = v; } //get方法:获取私有化变量的值 public String getUserName() { return userName; } } public class Test { public static void main(String[] args) { ThreeDemo td = new ThreeDemo(); td.setUserName("Mike"); //无法直接访问td.userName,故不可以用td.userName = “Mike”赋值 System.out.println(td.getUserName()); } } 2 this关键字表示当前类的对象 1 通过 this 关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突的问题。 2 通过 this 关键字调用成员方法. 3 可以在一个构造方法中去使用 "this([参数1,参数2…])"的形式去调用其他构造方法。 注意: 1 只能在构造方法中使用this去调用其他构造方法 2 this关键字调用构造方法只能放在第一行,且只出现一次 3 不能在同一个类的两个构造方法中互调,产生编译错误 public class Father { public String name; public int age; public Father() { //无参构造方法 System.out.println("Father"); } public Father(String name, int age) { //有参构造方法 System.out.println("Father!"); } } public class Child extends Father{ public Child() { this("Mike"); //super()与this()不能同时出现在构造函数中 //因为二者都需要放在构造函数的第一行 //但可以只写this,因为系统会自动使用super() System.out.println("Child"); } public Child(String str) { System.out.println("Child!"); } public static void main(String[] args) { Child c = new Child(); } } 二、继承 1 定义通过关键字extends来声明子类与父类的继承关系:子类 extends 父类 1 所有类都有父类,即所有类都派生于Object类 2 只能单亲继承,即每个子类只能有一个父类 3 子类可以直接使用继承的变量和方法,不需要再在子类中声明或写出 4 子类只能继承父类的非private修饰的变量和方法 5 如果子类中公有的方法影响到了父类的私有属性,那么私有属性是能够被子类使用的。即通过父类的公有方法访问到父类的私有变量。 public class Father { public String name; public int age; private String hobby; |
CopyRight 2018-2019 实验室设备网 版权所有 |