java-面向对象之认识及内存分配

  • 1.面向对象是基于面向过程的编程思想
    a:面向过程:强调的是每一个功能的步骤
    例如:吃饭:先买菜 洗菜 起锅烧油 盛饭 吃
    b:面向对象:强调的是对象,然后由对象调用功能
    例如:吃饭:饭店调用点菜下单功能 然后吃
  • 2.面向对象思想的特点:
    a:是一种更符合我们思想习惯的思想
    b:可以将复杂的事情简单化
    c:将我们从执行者变成了指挥者
  • 3.类的组成部分
    a:成员变量
    b:成员方法
    c:静态变量
    d:静态方法
    e:构造方法
    f:代码块
  • 4.类和对象的区别
    a:是一组相关的属性和行为的集合。是一个抽象的概念。
    b:是该类事物的具体表现形式。具体存在的个体。
  • 5.成员变量和局部变量的区别
    a:在类中的位置不同
    成员变量:类中方法外
    局部变量:方法定义中或者方法声明上
    b:在内存中的位置不同
    成员变量:在堆中
    局部变量:在栈中
    c:生命周期不同
    成员变量:随着对象的创建而存在,随着对象的消失而消失
    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
    d:初始化值不同
    成员变量:有默认值
    局部变量:没有默认值,必须定义,赋值,然后才能使用
  • 6.this关键字
    a:代表当前类的引用对象
    记住:哪个对象调用方法,该方法内部的this就代表那个对象
    b:this的应用场景:
    解决了局部变量隐藏成员变量的问题
  • 7.构造方法
    a:作用:用于对对象的数据进行初始化
    b:格式:
    方法名和类名相同
    没有返回值类型,连void都不能有
    没有返回值
    c:构造方法的注意事项
    如果我们没写构造方法,系统将提供一个默认的无参构造方法;
    如果我们给出了构造方法,系统将不再提供默认构造方法,如果这个时候,我们要使用无参构造方法,就必须自己给出;
    推荐:永远手动自己给出无参构造方法
  • 8.static关键字
    (1)静态的意思。可以修饰成员变量和成员方法。
    (2)静态的特点:
    a:随着类的加载而加载
    b:优先与对象存在
    c:被类的所有对象共享
    这其实也是我们判断该不该使用静态的依据。
    举例:饮水机和水杯的问题思考
    d:可以通过类名调用
    既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
    (3)静态的内存图
    静态的内容在方法区的静态区
    (4)静态的注意事项;
    a:在静态方法中没有this对象
    b:静态只能访问静态(代码测试过),静态加载的时候成员还没加载所以不能调用静态
    (5)静态变量和成员变量的区别
    a:所属不同
    静态变量:属于类,类变量
    成员变量:属于对象,对象变量,实例变量
    b:内存位置不同
    静态变量:方法区的静态区
    成员变量:堆内存
    c:生命周期不同
    静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
    成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
    d:调用不同
    静态变量:可以通过对象名调用,也可以通过类名调用
    成员变量:只能通过对象名调用
  • 内存中的执行过程
    三个对象的内存图
static修饰的静态在内存中执行过程

你可能感兴趣的:(java-面向对象之认识及内存分配)