zoukankan      html  css  js  c++  java
  • 面向对象(一)之类和对象

    1、基本概念
      对象——在JAVA眼中,一切皆对象。(对象是具体存在的)
      对象的组成——属性(名词—成员变量)、行为(动词—方法)
      类——对象的模版。具有相同属性和行为的一组对象的集合。(类是抽象的概念)
      在同一个文件中,只能有一个类是public的(包含main方法的类)。
      构造方法——最大的作用就是用来创建对象的。另一个作用——初始化成员变量。
      局部变量无初始值。当局部变量和成员变量重名时,优先调用局部变量。通过使用this指针解决成员变量和局部变量同名问题,this指针相当于当前对象的引用。

      成员变量初始化:

        JAVA中成员变量会默认初始化
          数值类型——0
          布尔类型——false
          char——空字符
          引用数据类型——NULL值(代表一个引用没有指向任何的对象,也就是说这个引用没有任何对象的内存地址)
          Java有垃圾回收机制,它可以自动回收Java中无用的内存。
          无用的内存——就是一个对象没有引用指向的时候,这个对象就是垃圾。
          如果想要销毁一个对象,最好的方法就是将指向的引用设置为NULL。


    2、构造方法的特殊:
        1)与类名相同
        2)没有返回值类型,连void也没有
        3)每一个类都有一个隐式的构造方法(没有参数、方法体)
        4)当手动添加一个显示的构造方法是,隐式的构造方法就不存在了。
        5)构造方法只能和new关键字一起使用。
    3、引用数据类型(类、数组等)

         基本数据类型变量中保存的是真实的值。

         引用数据类型中保存的不是真实的值,而是保存的对象在堆中的内存地址,通过地址可以找到真实的对象,所以这个变量并不是真正的对象,而是对象的引用。

    4、JAVA内存分为:

         1)、code segment(代码区)    字节码

         2)、heap segment(堆区)   对象

         3)、stack segment(栈区)  局部变量

         4)、static segment(静态区)——属于栈区的一块特殊区域,数据不能重复      静态的变量和字符串常量

    5、堆和栈的区别:

       堆可以保存大数据的内容,但是速度慢;栈可以保存小数据的内容,速度快。

    6、static

      加上static的成员变量称之为静态变量(类变量)
      加上static的方法称之为静态方法(类方法)
      静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!
      注意:静态的方法中只能访问静态的成员变量。
         非静态的方法既可以访问静态的变量也可以访问非静态的变量。
            静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。静态方法——不需要创建对象,直接使用类名.变量调用。

            所有的对象共享其数据,也就是说这个变量跟对象是没有关系的,所以称之为类变量,可以使用类名.变量的方式来表示。

      ?static segment中的数据不能重复
      ?main方法是一个程序的入口,在main方法执行前不可能有任何对象被创建,JVM需要调用main方法只能是static的。

      静态初始化块只在类加载时执行(最先执行),且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

        

      运行结果:

        

  • 相关阅读:
    多线程之生产者和消费者模式
    python多线程之线程同步--锁
    python多线程之动态确定线程数
    python多线程之循环,调用函数等
    V8 引擎是如何工作的?
    AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解
    字节码
    V8 引擎是如何工作的?
    JavaScript arguments对象
    V8 是怎么跑起来的 —— V8 中的对象表示
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/7382503.html
Copyright © 2011-2022 走看看