* 1.类的定义
* 类的组成部分?包,类名,属性,方法,构造方法
* 命名规范:
* 包:全小写
* 类名:大驼峰
* 属性,方法都是小驼峰
* 构造方法和类名一致:构造方法分为无参和有参数
* 2.对象的使用 :通过构造方法得到对象,对象里面的属性和方法可以通过对象直接调用
* 3.private 私有,就是其他类不能调用被private修饰的属性或者方法
* 4.this 代表对象,当前对象,谁调用就代表谁:
* this只能调用当前对象的属性和方法吗?
* this调用属性,首先在当前类里面找,如果本类找不到,则去父类,超类里面找,
* 5.封装:隐藏细节,暴露接口
* 6.构造方法:任何一个类默认一个无参数的构造方法
* 如果手写了一个有参数的构造方法,则默认的无参数构造方法失效
* 需要手动写一个无参数的构造方法
* 构造方法是有返回值,不写返回值类型和return
* 7.JavaBean :
* 1.属性私有
* 2.set/get方法
* 3.构造方法
* @Data//设置set和get方法和toString方法
* @NoArgsConstructor//无参数的构造方法
* @AllArgsConstructor//全参数的构造方法
* 8.Scanner 获取用户输入
* 9.Random 随机数,m,n之间的随机数
* 10.String 常用方法
* 11.基本类型和包装类:数据转换:隐式和强制转换,向上转型和向下转型
* 装箱和拆箱:
* ------------------------------------------
* 1.以前如果类里面有很多一致的代码,考虑将代码提取到工具类,这个工具类和当前类的关系不大
* 2.如果提取的代码和当前类的代码关系大,或者具有组合或聚合关系
* 3.如果子类继承父类,子类可以直接调用父类的方法,但是,不能调用私有方法
* 4.子类可以调用父类的protected受保护的:修饰的 属性或者方法
* 5.如果子类和父类的方法一致,则调用子类的方法时,则执行子类的方法
* 6.子类和父类方法一致,其实是对父类的方法进行重写(覆盖)
* 7.重写:子类扩展了父类的相同方法
* 1:方法名相同
* 2:个数必须相同
* 3:参数类型是否相同?必须
* 4:和返回值数据类型是否相关?可以不一致,但是子类必须小于等于父类
* 5.权限修饰符,子类必须大于等于父类
* 一般判断两个方法是否重写用注解@Override
* 简单理解重写:父类和子类方法一样
* 8.重载:
* 1:方法名相同
* 2:参数类型和个数不同
* 3:和返回值类型无关
* -----------------
* 重载,不局限于同一个类
* 9.权限修饰符:四个,可不可以修饰类?
* 类只能是默认不写和public修饰:
* 创建类的主要目的?为了创建对象,让别人调用
* 10.基类,直接父类,超类,超越父类的类
* 11.Object,所有类的父类或者超类,最顶端的类,所有引用类型默认继承Object类
* 12.面试会问?Object的常用方法?
* 1:getClass() 用于反射,得到当前类
* 2:hashCode() 打印地址
* 3:equals() 判断地址值是否相等
* 4:clone() 克隆,拷贝,浅拷贝和深拷贝
* 5:toString() 将对象转换为字符串,所有对象默认都是toString
* 6:notify() 唤醒线程 notifyAll()唤醒所有线程
* 7:wait() 线程等待
* 8:finalize() 垃圾回收的时候会用
* 13.以后写代码尽量:解耦:不要有太强的耦合性
* 14.变量的访问:局部变量--》成员变量--》父类--》超类 :就近原则
* 15.this()只能在构造方法里面调用,而且放在第一行
* 16.子类的构造方法(无论是否有参数)默认写了一个无参数的父类的构造方法:super();
* 17.java中是否支持多继承,支持,接口可以支持
* 18.Java接口是属于类吗?属于类
* 19.Java接口是对抽象类的封装,抽象类是属于类
* 20.Java普通类不能支持多继承,只有接口才支持
* ------------------------------------------
* 修饰符:
* 权限修饰符 访问修饰符
* public 所有类都可以访问
* private 只能当前类可以访问
* protected 一般用于子类访问父类
* 默认不写 当前包可以访问
* 状态修饰符 非访问修饰符 特征修饰符
* final 关键字 最终的
* 修饰方法:方法不能被重写:如果父类不想子类重写(修改)方法,则用final修饰
* 修饰变量:表示是常量,不能再次赋值:定义变量的时候,一定要赋一个初始值,
* 常量,只能使用,不能再次赋值
* 修饰类:不能被继承,不能有子类继承,但可以作为其他类的子类
* 如果final修饰的是引用类型:则不能改变当前的引用地址,可以改变里面的内容
* static 静态:简单理解为数据共享
* 静态方法里面不能直接调用非静态属性或方法,只能通过对象.属性,对象.方法名
* 普通方法可以调用静态方法和非静态方法
* 21.static一般用于工具类
* 一般构造方法需要私有:
* 私有后就不会被别人创建多个对象,占用内存空间
* 成员变量和方法都用static修饰即可
* 22.代码块在创建对象时,执行
* 23.静态代码块在编译代码时执行,静态代码块只要用到了类,就会执行,
* 代码块只能创建对象调用构造方法时才执行
* 代码块在构造方法之前执行
* 静态代码块先于代码块执行
* 代码块先于构造方法执行
*--------------------------------------
* 知识点:
* 1.理解继承
* 2.理解final和static
* 3.math和代码块
* 4.掌握。代码的执行顺序