博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象(一)之类和对象
阅读量:5965 次
发布时间:2019-06-19

本文共 1473 字,大约阅读时间需要 4 分钟。

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的。

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

    

  运行结果:

    

 

转载于:https://www.cnblogs.com/Lune-Qiu/p/7382503.html

你可能感兴趣的文章
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>
批量删除用户--Shell脚本
查看>>
Eclipse Java @Override 报错
查看>>
知道双字节码, 如何获取汉字 - 回复 "pinezhou" 的问题
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>