• 面向对象


    定义

    的方式组织代码,以对象的封装数据

    类和对象的关系

    类是一种抽象的数据类型,它是对某一事物的完整描述

    对象是抽象概念的具体实例

    构造函数

    快捷键:alt+ins=生成构造器

    //构造器(默认无参数)
    public Student(String name,int age) {
        this.name=name;
        this.age=age;
    }
    

    三大特性

    封装

    将复杂的功能封装起来,对外开放一个接口,简单调用

    继承

    1. extend
    2. java中只有单继承,没有多继承
    3. object类(任何类都继承他)
    4. super

    super的注意点

    1. super调用父类的构造方法,必须在构造函数第一个
    2. super和this不能同时调用构造函数
    3. super必须只能出现在子类的方法或子类的构造函数中
    4. 在子类任何构造器(不管有几个形参)中super()是隐藏的

    super和this比较

    super this
    代表的对象 父类对象的应用 本身调用者这个对象
    前提 需要继承 没有继承也可以用

    ctrl+h可以查看继承关系

    方法重写(override)区别于方法重载

    1. 方法重载:同一个类中的方法参数列表不同
    2. 方法重写(有继承关系,子类重写父类
      • 方法名必须相同和参数列表必须相同
    //父
    protected void hello(){
        System.out.println("hello 父类!");
        return;
    }
    //子
    @Override
    public void hello() {
        System.out.println("hello 子类");
    }
    

    多态

    不同的对象调用同样的方法但是做了不同的事情。

    1. 多态是方法的多态,属性没有多态

    2. 存在的条件:继承关系,方法需要重写,父类的引用指向子类的对象 ——也可以理解成表现形式

    3. 类型转换

      1. 子类转化成父类,向上转型

      2. 父类转成为子类,向下转型:强制转换

      3. //类型转换 由高(父类)到底(子类)需要强转
        Person person = new Student();
        ((Student) person).go();
        //person.go(); error
        Student student = (Student) new Person();
        //student.go(); 没有go方法
        

    修饰符

    四种访问方式

    private default protected public
    同一类 1 1 1 1
    同一包中的类 1 1 1
    子类(可以跨包) 1 1
    其他包的类 1

    static

    static 只加载一次

    匿名构造类可以进行赋一些初值

    例子

    public class Person {
        static {//1
            System.out.println("this is 静态代码块");
        }
    
        {//2
            System.out.println("this is 匿名代码块");
        }
    
        public Person() {//3
            System.out.println("this is 构造方法");
        }
    
        public static void main(String[] args) {
            Person person = new Person();
            System.out.println("===================");
            Person person1 = new Person();
        }
    }
    /*
    输出
    this is 静态代码块
    this is 匿名代码块
    this is 构造方法
    ===================
    this is 匿名代码块
    this is 构造方法
    */
    

    abstract抽象类

    public abstract class Action {
        public abstract int add(int a,int b);
        public abstract int del(int a,int b);
        public abstract int mul(int a,int b);
    }
    

    注意:

    1. 不能new这个抽象类,只能靠子类继承
    2. 抽象类中可以写普通方法
    3. 抽象方法必须在抽象类中

    接口

    接口中所有的定义方法都是抽象的public abstract

    接口可以多继承,区别extends

    public interface UserService {
        void update();
    }
    public class UserServiceImpl implements UserService {
        @Override
        public void update() {
    
        }
    }
    

    技巧

    效果图

    具体的操作:

  • 相关阅读:
    交叉编译fw_printenv
    解压 xxxx.cpio.gz.u-boot
    创建Uboot 环境变量 bin 文件
    Linux快速显示图片
    移动终端的GPU显卡介绍
    Video Mode Timings
    change systemd service
    device tree DTB DTC 相互转换
    如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)
    解决h5在ios 微信中 input框键盘收起 页面底部留白
  • 原文地址:https://www.cnblogs.com/10134dz/p/13781375.html
Copyright © 2020-2023  润新知