zoukankan      html  css  js  c++  java
  • Java三大特性

    面向对象的三大特性

    1.封装性(属性私有,get,set)

    提高了程序的安全性,保护了数据
    隐藏了代码的实现细节
    统一了接口
    系统的可维护性增加了

    set get方法可以设置安全性检测,来设置正确的数据

    public class Encapusulatin {
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    public class Application {//通过set,get方法来设置和访问类
        public static void main(String[] args) {
            Encapusulatin en = new Encapusulatin();
            en.setName("封装");
            en.setId(1);
            System.out.println(en.getName()+en.getId());
        }
    }
    

    2.继承性

    1. java中所有类都继承(间接)Object 类。
    2. java只有单继承。
    3. 快捷键打开继承树:ctrl + H
    4. private 不能继承
    5. 权限一共四个等级

    super和this

    • super()必须放在构造器中的第一行,是第一行的代码!默认调用父类的无参构造器。super();方法中可以传参调用父类的含参构造器
    • super只能出现在子类方法或者构造中
    • super()和this()不能同时使用
    • 子类构造方法调用了父类的构造方法

    this 和super的区别

    代表的对象不同

    • this代表本身调用者这个对象
    • super代表父类的引用

    前提不同

    • this 没有继承也能使用
    • super只有继承才能使用

    构造方法

    • this使用本类的构造方法
    • super使用父类的构造方法

    3.多态性

    重写override(目的:父类中的方法无法满足子类的需求了)

    静态方法重写也没用,永远只调用左边的

    Person person = new Student();
    
    • 重写的方法只能用public修饰。
    • 方法名必须相同
    • 必须有继承关系
    • 参数列表一定相同
    • 修饰符的范围可以变大,不可以变小
    • 异常的范围只能变小,不能变大
    public class ThisTest {
        String name;
        public ThisTest() {//使用this调用同类的其他构造方法
            this("LiBai");
            System.out.println(name);
        }
        public ThisTest(String name) {
            this.name = name;
            System.out.println(name);
        }
    }
    public class SuperTest extends ThisTest {
        String name;
        public SuperTest() {
            super();//不传参调用父类
            System.out.println(name);
        }
        public SuperTest(String name) {
            super(name);//传参调用父类的构造方法
            System.out.println(name);
        }
    }
    public class Application1 {
        public static void main(String[] args) {
            ThisTest t = new SuperTest();
        }
    }
    结果:
        LiBai
        LiBai
        null
    
  • 相关阅读:
    Mybatis Plus 代码生成器
    Vue中 scss不支持/deep/写法问题
    学习过程中看到的网站收藏
    mysql数据库的安装配置
    element表格样式修改
    vue甘特图gantt
    一个CSS动画生成工具,可自由配置各种动画特效,并自动生成代码
    《TypeScript 入门教程》全面介绍了 TypeScript 强大的类型系统,完整而简洁,示例丰富,比官方文档更易读,非常适合作为初学者学习 TypeScript 的第一本书 —— 阮一峰
    程序员文档编辑器 Markdown
    Svn(小乌龟)的基本操作使用
  • 原文地址:https://www.cnblogs.com/li33/p/12709926.html
Copyright © 2011-2022 走看看