首页 > 代码库 > Java学习笔记(1)

Java学习笔记(1)

面向对象最早70年代IBM的smalltalk
面向过程:针对于某一个问题单独提出解决方案以及代码开发
面向对象:以一种组件化的形式进行代码的设计。这样开发出来的代码最大的好处是可以复用(组件化的设计思想)
 
面向对象程序里面包含的几个特征:
  1. 封装性:保护内部的定义结构安全
  2. 继承性:在已有的程序结构上继续扩充新的功能
  3. 多态性:在某一个概念范围内的满足
 
面向对象开发分为步骤:
  1. OOA(面向对象分析)
  2. OOD(面向对象设计)
  3. OOP(面向对象编程)
 
类与对象
     对象的定义格式有两种:
    1. 声明并实例化:类名称  对象名称  = new  类名称()
    2. 分步完成:
      1. 声明对象:类名称  对象名称 = null
      2. 实例化对象:对象名称  = new  类名称
     引用数据类型与基本数据类型最大的不同在于内存的关系
     内存的开辟及使用:new关键字的主要功能就是开辟内存空间
     即:只要是引用数据类型想使用,那么就必须使用new关键来开辟内存空间
 
     当一个对象实例化后,可以利用对象来操作类的结构:
  • 对象.属性:表示操作类中的属性内容
  • 对象.方法():表示要调用类中的方法
 
内存空间的概念:
  1. 堆内存:保存每一个对象的属性内容。堆内存需要用关键字new才可以开辟
  2. 栈内存:保存的是一块堆内存的地址
 
开辟堆内存的对象称为实例化对象
使用没有实例化的对象,编译时不会报错。运行时会出现“NullPointerException”(空指向异常)
 
引用数据的初步分析
     在引用数据类型关系里面,一块没有任何栈内存指向的堆内存空间就称为垃圾空间
     所有的垃圾会不定期的被垃圾收集器(GC)进行回收,回收之后会释放掉其所占用的空间
     虽然Java支持自动的垃圾收集处理,但是在开发过程中应该尽量减少垃圾空间的产生
 
封装性:
     业务逻辑上的错误:造成此类问题的核心在于:对象可以在一个类的外部直接访问属性
     设置属性对外不可见,用private,外部的对象无法再直接调用类中的属性了
     关于setter方法和getter方法:
    对于数据的验证部分,在标准开发中应该由其他的辅助代码完成。setter只是简单的设置数据,getter简单的获取数据
 
构造方法:
     构造方法定义原则:方法名与类名称相同,没有返回值声明
 
     构造方法与普通方法的最大区别:
  • 构造方法是实例化新对象(new)的时候只调用一次
  • 普通方法是在实例化对象之后可以随意调用多次
构造方法的核心作用:在类对象实例化的时候设置属性的初始化内容
 
构造方法是为属性初始化准备的
     如果一个类中已经明确定义了一个构造方法,那么自动生成的无参的构造方法将不存在了
     一个类中至少保留了有一个构造法
     构造方法重载时,要求只注意参数的类型及个数
 
匿名对象:
     没有栈指向的对象就称为匿名对象
     匿名对象由于没有其他对象对其进行引用,所以只能使用一次,使用一次之后就等待被回收
 

Java学习笔记(1)