• 面向对象基础知识


    • c语言:面向过程;c++面向对象
    • 同类型变量放在一起组成数组
      • 属性
      • 方法
      • 构造方法。
        • 用于创建这个类的对象。无参的构造方法可以由系统自动创建。
        • 构造器也叫构造方法constructor,用于对象的初始化。
        • 注意:手动添加的构造器,系统不会自动创建,要自己加上空构造器,
        • 要点
          • 通过new关键字调用。
          • 构造器虽然有返回值,但是不能定义返回值类型。不能在构造器里使用return返回某个值。
          • 如果我们没有定义构造器,编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加。
          • 构造器的方法名必须和类名一致。
            • public point(double_x,double_y){
            • x=_x;
            • y=_y;
            • }
        • 重载
          • 方法名相同,参数不同。
          • 构造方法的第一句总是super()
          • this表示创建好的对象。
      • 程序入口(主函数)
        • new一个对象
    • 内存分析
      • java虚拟机内存分3个区域
        • stack,
          • 栈描述的是方法执行的内存模型每个方法被调用都会创建一个栈帧(存储局部变量操作数,方法出口等。)
          • JVM为每个线程创建一个栈。用于存放该线程执行方法的信息。(实际参数,局部变量等。)
          • 栈属于线程私有,不能实现线程间的共享。
          • 在的存储特性是,”先进后出,后进先出。”
          • 栈是由系统自动分配,速度快。栈是一个连续的内存空间。
        • heap,
          • 堆用于存储创建好的对象和数组。(数组也是对象。)
          • jvm只有一个堆被所有线程共享。
          • 堆是一个不连续的内存空间。分配灵活,速度慢。
        • 方法区method area又叫静态区特点如下。
          • jvm只有一个方法区被所有线程共享。
          • 方法区实际也是堆只是用于存储类,常量相关的信息。
          • 用来存放程序中永远是不变或唯一的内容。(类信息。Class对象。静态变量字符串常量。)
    • 对象
      • 创建的过程
        • 1.分配对象空间,并将对象成员变量初始化为零或空。
        • 2.执行属性值的显式初始化。
        • 3. 执行构造方法。
        • 4.返回对象的地址给相关的变量。
      • this
        • 本质建好对象的地址。
        • 2.当程序出现二义性的时候。用this来区分成员变量和局部变量。
        • 3.this可以调用其他构造器。构造器的调用必须放在第一句。
        • this不能用于static方法中。
    • 静态
      • static关键字
        • 在类中用static声明的成员变量为静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。
        • static修饰的成员变量和方法,从属于类。普通变量和方法从属于对象。
    • 包机制
      • 非注释性语句的第一句用package+包名
      • 包名:域名倒着写com.jd。再加上项目名,模块名。
      • 通过import导入包中的类
        • import * 降低编译速度
        • 静态导入
          • import static system.lang.Math
    • 继承
      • extends 要继承的类名-------继承所有的属性和方法,但不继承父类的构造方法
      • Java接口有多继承,类只有单继承,c++有多继承
      • stu instenceof Stutent-------判断左面这个对象是不是右面这个类的的实例,返回布尔值
    • 方法重写override
      • 1.子类通过重写父类的方法,可以用自身的行为替换父类的行为。
        • public Horse extends Vehicle{
        • public void run(){
          • system.out.println("四季纷飞")
          • }
        • }
      • 2.返回值类型小于等于父类的类型。
      • 3.方法名形参列表相同。
      • 4.访问权限子类大于等于父类。
    • Object类是所有java类的根基类
      • toString()方法
        • 1.undefined和null没有toString()方法
        • 2.布尔型数据True和false返回对应的true和false
        • 3.字符串类型原值返回
        • 4.
    • equals方法的重写
      • public boolean equals(Object obj){
        • ecliose鼠标右键,source,点击生成hashcode和equals方法
        • }
      • 对象内容是否相等
    • super
      • 直接引用父类。super.f()
    • 封装encapsulation
      • 栗子:以电视
      • 访问控制符
        • private表示私有,只有自己类能访问。
          • 此类无法使用父类的私有属性和方法。
        • default有事没有修饰符修饰。只有同一个包的类能访问。
        • protected表示可以被同一个包的类以及其他包中的子类访问。
        • public表示可以被该项目的所有包中的所有类访问。
      • 封装使用细节
        • 1.设置属性私有
        • 2.对属性设置set,get方法
          • eclipse自动生成:右击——>source——>create set and get
          • public class Person{
            • private int name;
            • private int age;
            • public void setName(String name){
            • this.name=name;
            • }
            • public String getName(){
            • return this.name;
            • }
            • public void setAge(int age){
            • if(age>=1&&age<=120){
              • this.age=age;
              • }else{
              • system.out.println()
              • }
            • }
            • public int getAge(){
            • return this.age;
            • }
          • }
    • 多态
      • 1.同一个方法的调用,由于对象的不同可能会有不同的行为。在现实生活中,同一个方法,具体实现会完全不同。
      • 2.多态是方法的多态,不是属性的多态
      • 3.三个必要条件
        • 继承
        • 重写
        • 父类引用指向子类对象
      • 4.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。
  • 相关阅读:
    安卓开发遇到的报错信息
    工作记录
    答辩系统问题
    DWR
    前端vue 里的tab切换 减少dom操作
    前端拖动div 效果
    vue 点击按钮弹窗,点击关闭按钮关闭弹窗。
    前段开发 jq ajax数据处理详细讲解。
    vue计算属性computed和methods的区别
    前段开发 react native tab功能
  • 原文地址:https://www.cnblogs.com/yyphappness/p/10321259.html
Copyright © 2020-2023  润新知