1.特点: 封装:将数据整合到一个独立的个体中。 用一段特定格式的代码块封装一段特定的逻辑(只封装一件事的逻辑) 继承-好处:子类可以继承父类中的代码(不能继承构造方法,私有代码) 多态:名字相同的方法,实现的具体内容不同 2.方法:封装一段特定逻辑的代码结构 2.1 尽可能之封装一个特定逻辑 2.2 可以被重复调用 2.3减少代码的重复,增加代码的可维护性,便于团队开发 3.函数定义: 修饰 返回值 方法名(参数列表){ return } 普通-调用:对象.函数名(参数); 静态-调用:类名.函数名(参数);不建议:对象.函数名 4.返回值: 没有返回值要标void 5.类和对象: 类:类是一种对象的对象的抽象(的概念) 对象;单独具体真实存在的个体(有属性) 类是根据已经存在的对象抽象的概念 规范的类:属性私有化,方法公有化 栈:(局部变量,参数) 堆:(对象<成员变量>) 6.内存: 栈: 局部变量 ,参数 为方法在栈中开辟一个栈帧,局部变量存到栈帧中,方法执行完了,栈帧空间回收掉(局部变量也一并回收) 堆:对象(字符串,数组) 一般的对象都会在栈中变量指向此对象 对象使用完毕,及时把指向对象的变量置为null; 垃圾回收器会不定期的扫描内存空间,如果发现有未被变量指向的对象,则回收此对象 方法区:存储.class字节码文件(方法) 7.类的继承: 作用:实现代码的复用, extends 只能单继承和多层继承,不能多继承!!! 8.this关键字: this. 表示当前对象 this.方法(); this.成员变量; this(参数列表) 调用当前类构造方法 9.super关键字: super.表示父类对象 super.成员变量 ;super.方法名(); super(参数列表)调用父类构造方法 ,必须处于当前构造函数的第一行 先有父类对象,再有子类对象 10.引用类型数组 String[] str=new String[3]; String[0]=“aaa”; Str[1]=new String(“aaa”) 11.访问权限修饰符 当前类 同包下的类 父子 不同包下的类 public 是 是 是 是 protected 是 是 是 否 不写(默认) 是 是 (同包)是|(不同包)否 否 private 是 否 否 否 2.static 1.static修饰的方法/变量可以直接通过类名调用 2.在static方法中可以直接调用static方法 3. 非静态方法|非静态变量需要用对象调用 知识点:静态关键字修饰的代码属于所有的对象共有的代码 (静态代码属于类,不属于对象) 静态的方法不能用this调用 4.静态代码块 执行顺序:先执行静态代码块 (父静,子静) 再执行父类部分(代码块在构造之前),再执行子类部分 5.静态代码快属于类的,不属于对象–在类加载器加载.class文件的时候,会自动执行代码块 代码执行, .java—.class(JVM --类加载器) 类加载器加载.class文件(执行静态代码块) 3.多态:(重载/重写) 4.方法的重载:方法名相同,参数列表不同(同类)//(个数,顺序(类型)) 5.方法的重写:父类与子类的方法 两同(名字&参数(在父类和子类中,有一个名字和参数相同)) 两小(返回值类型<引用>或抛出的异常 子类<=父类) 一大(访问控制 子类>=父类的访问控制修饰符) 6.final修饰变量:必须有初始化 值不能被改变 final函数:可以重载,不能被重写 final类:不能被继承 注:final public同时修饰一个变量—>常量 1.(名字全部大写,多个单词充当名字中间用下划线分隔) 2. 常量不能被更改,软件中 数据不会改变的参数最好存常量 3.常量访问:用类名直接访问 4.常量必须在类中声明 7.父类名 s=new 子类(); :将等号右边的对象类型提升为父类型 向上造型/向上转型 1.当子类覆盖父类的方法时,用向上造型的对象调用方法: 方法绑定到对象上(看用的什么对象,用子类对象就调用子类) 2.当字另类和父类具有同样的属性(成员变量)时: 属性绑定到类型上(对象的类型是父类型就调用父类型) 8.abstract:抽象的 1.抽象方法: abstract-方法:用于修饰未实现的方法(只有方法的定义没有方法体) 2.抽象类: abstract-类: a.如果类中有抽象方法-----类必须是抽象类 如果一个类是抽象类---------此类必须有必须有抽象方法 b.抽象类----不能去创建对象 作用1:子类继承实现的部分–复用,不知道如何实现方法可以先定义成抽象方法后期在子类中 实现出来 作用2:向上造型–为子类提供统一的访问接口