zoukankan      html  css  js  c++  java
  • 面向对象

    1 什么是面向对象
    是一种看待问题的思维方式 着眼于找到一个具有特殊功能的具体个体
    然后委托这个个体去做某件事 我们把这个个体 就叫做 对象

    是一种更符合人类思考习惯的思想(懒人思想)
    可以将复杂的事情简单化 将程序员从执行者转换成指挥者
    使用面向对象进行开发 先要去找到具体实现某功能的那个对象
    如果该对象不存在 那么就创建一个具有所需功能的对象

    类的声明
    语法:
    访问权限修饰符 class 类名{
    //类体
    }
    说明:
    1.访问权限修饰符 只能是 public 或者 默认(default)
    2.类名只要是一个合法的标识符即可
    要求首字母必须大写
    3.尽量使用单个或者多个有意义的单词来命名
    //重点:注意:
    1.一个java文件中可以写多个类
    编译后会生成多个.class字节码文件
    2.一个java文件中最多只能有一个被public修饰的类
    该类的名字 必须和 java源文件名保持一致
    3.一个java文件中如果只有一个类 并且该类不是用public修饰的
    类名 和 java文件名可以不一样

    类中成员变量的定义
    通过 对象引用.成员变量名 的方式进行调用

    重点:成员变量 和 局部变量的区别:*******
    A:初始化值不同
    成员变量:有默认初始化值
    局部变量:没有默认初始化值 必须赋值
    B:在类中的位置不同
    成员变量:在类中 方法外
    局部变量:在方法中 或者 方法声明上
    C:在内存中的位置不同
    成员变量:在堆内存中(属于对象 对象存在堆内存 它就也在堆内存)
    局部变量:在栈内存中(属于方法 方法进栈)
    D:生命周期不同
    成员变量:随着对象的创建而存在 随着对象的消亡而消亡
    局部变量:随着方法的调用而存在 随着方法的调用完毕而消亡

    类中方法的定义
    通过 对象引用.方法名() 的方式进行调用

    2.对象创建内存分析
    2.1 对象的创建
    对象的创建过程 也被称为对象的实例化过程
    语法:
    类名 对象的引用 = new 类名();

    例如:
    Scanner sc = new Scanner(System.in);
    int i = sc.nextInt();


    2.2 内存分配
    程序运行时 操作系统会分配内存空间 主要分为三块
    栈内存:
    直接存放基本类型的局部变量 和 引用类型的地址
    栈内存空间比较小 存取速度相对较快
    先进后出原则
    堆内存;
    存放引用类型的实际数据部分(new 出来的实体)
    堆内存空间较大 存取速度较慢
    方法区:
    静态区 串池
    方法区中有一块区域叫做串池 用来存储字符串常量
    静态区 存的是被static静态修饰的成员


    3.构造方法 Constructor
    3.1 构造方法的定义
    构造方法 也叫构造函数 也叫构造器
    这个方法很特殊
    用来创建对象的 并且可以给对象的属性进行初始化赋值
    语法格式:
    [访问权限修饰符] 类名(形参列表){
    方法体
    }
    重点 特点:
    1.方法名和类名 完全相同(大小写都要一模一样)
    2.没有返回值类型 连void都没有
    3.没有具体的返回值 return
    return; 可以写 但是不能有任何返回值
    默认是不写的 完全不推荐写
    4.在创建对象的时候 系统会帮我们调用构造方法
    构造方法 不能用 对象的引用.方法名 调用
    3.2 构造方法的调用
    创建对象的时候 根据需求 调用 无参构造 或者是有参构造
    重点 3.3 构造方法和普通方法的区别
    1.构造方法在创建对象的过程中调用
    普通方法只能手动调用
    2.构造方法没有返回值类型 连void都没有
    普通方法返回值是什么 返回值类型就是什么 要么就是void
    3.构造方法的方法名必须和类名一致
    普通方法自己写
    4.构造方法在创建对象过程中就会执行
    构造方法只在创建时执行一次
    普通方法在调用的时候执行
    可以执行若干次
    5.系统会默认为我们提供一个无参构造
    普通方法自己写
    3.4 构造方法重载
    注意事项:
    如果我们没有给出构造方法 系统会默认分配一个无参构造
    如果自己写了构造方法 系统将不会再提供无参构造
    建议
    永远给出无参构造 哪怕方法里面什么都不写

  • 相关阅读:
    jquery判断<inpur type="checkbox" checked>是否被选择
    hibernate多对多的更新问题
    关于getHibernateTemplate().get()方法
    springmvc的@ResponseBody报错
    @RequestBody ajax 415 400
    js判断浏览器的类型,动态调整div布局
    平衡树treap 0基础详解
    P1582 倒水 题解
    vscode入门记
    P5025 [SNOI2017]炸弹 题解
  • 原文地址:https://www.cnblogs.com/wanghuaying/p/9386745.html
Copyright © 2011-2022 走看看