开启面向对象学习之旅

Java是一种纯面向对象的语言。
Java的学习主要有三个路线:

  • Java类与对象:属性、方法、构造器、代码块和内部类;
  • 面向对象三大特征:封装性、继承性、多态性;
  • 其他关键字的学习:this、super、static、final、abstract、interface、package、import

1. 面向过程编程与面向对象编程的区别

面向过程编程(POP,Procedure Oriented Programming):强调的是功能和行为,更侧重从如何解决问题的角度出发。它是以函数为最小单位。
面向对象编程(OOP, Object Oriented Programming):将功能封装进对象,强调对象具备功能,更侧重从某对象具备某功能,某个能解决某个问题的角度出发。以类/对象为最小单位。

2. 面向对象编程的两个要素

  • 类:一系列有共性对象的抽象描述,是抽象的、概念上的定义;
  • 属性:类中的成员变量(Field = 属性 = 成员变量 = 域、字段)
  • 行为:类中的成员方法(Method = (成员)方法 = 函数)
  • 对象:是对类的一个具体实例

3. 类和对象的使用

  1. 设计类的成员(属性和方法),常见类
  2. 创建类的对象
  3. 通过"对象.属性" 或者 "对象.方法"调用对象的结构

注意:一个类可以创建多个对象,每个对象都独立的拥有一套类的属性(非static属性)。对一个对象属性的修改不会影响其他对象的属性值。

4.类的语法格式

[public] class 类名{

			[访问权限符] [其他关键] 属性数据类型 属性名[ = 属性值]; //属性声明

			[访问权限符] [其他关键] 返回值类型 方法名(形参列表) {  //方法声明
			
			方法体;
	}
}

注意:

  • class的访问修饰符只有两种:public和默认修饰符(不写修饰符就是默认修饰符)。一个.java文件中只有能一个public修饰的类,可以有多个默认修饰符的类。
  • 在一个包含多个类的.java文件中可以使用多个main()方法。

5.对象创建和使用的内存解析

javaxmlpullparser详解 java plain_java

  • 虚拟机栈。通过所说的栈就是指的Java虚拟机栈,虚拟机栈中用于存放局部变量。局部变量表存放了编译期可知长度的各种基本数据类型的变量和变量值(boolean、byte、char、short、int、float、long、double)、引用数据类型的变量和指向堆空间中对象的首地址。方法执行结束后,自动释放变量名和变量值。
  • 堆空间(Heap),此内存区域的唯一目的就是存放对象实例(new 出来的对象和数组),几乎所有的对象实例都在这里分配内存。这一点在 Java 虚拟机规范中的描述是:所有的对象实例以及数组都要在堆空间上分配。
  • 方法区(MethodArea),用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。