
一、面向对象1、类和对象1、类的定义修饰符 class 类名 [extends 父类名]{修饰符 类型 成员变量修饰符 类型 成员方法1参数列表{方法体}class为关键字用来声明定义一个类。带有class的这一行叫做类头大括号包裹内部的代码部分称为类体。class前面可以添加一个或多个修饰符用于控制类的访问权限与使用特性。类名由开发者自定义命名必须是合法标识符命名尽量遵循标准命名规范。extends是继承关键字。当当前类继承自父类时需要在extends后面写上父类名称。在类的定义当中类头和类体保存在同一个文件内完整的类代码不能拆分到多个文件部分场景下源文件代码体量会比较大。Java源文件名称必须和文件内public修饰的公有类类名保持完全一致名称大小写不能写错。定义类的时候可以使用extends显式指定父类也可以省略不写。如果没有写明继承哪一个类该类默认直接继承Object类。Object是Java里面全部类的顶层父类所有类要么直接继承Object要么间接继承Object。除Object以外每一个类有且仅有一个直接父类Object本身没有父类。class定义类末尾的大括号写完之后不能加分号 ;。2、构造方法构造方法属于一类特殊的方法具备专属功能。构造方法名称必须和类名保持一致没有返回值。创建对象实例的时候由new运算符自动调用。为了方便对象实例化一个类可以定义多个参数列表互不相同的构造方法也就是构造方法重载。不管是系统自带标准类还是开发者自定义的类通常都会提供多个构造方法。public class Xyz {int x;public Xyz(){ x 0; } 无参构造public Xyz(int i){ x i; } 有参构造}this关键字可以指明本对象的成员变量3、对象的创建和初始化类的定义可以理解成一套“模具”。仅仅声明类类型变量只是准备好可以存放对象的引用还没有生成实例通过模具复制出来的实体副本才是程序中真正使用的对象。使用new关键字为新对象分配内存空间本质就是调用该类的构造方法。在Java当中调用构造方法是创建实例对象的唯一方式该过程就叫做对象实例化。仅声明一个引用变量只是开辟出变量本身对应的存储空间此时堆内存当中并没有分配空间用来存放对象实例。只有完成对象实例化之后程序中才会产生真正的对象实例。使用new创建对象时要不要传参、参数数量、参数的数据类型由类中定义的构造方法决定。程序会根据传入参数的数量与类型自动匹配并执行对应的构造方法。二、数组和字符串1、数组数组是由相同数据类型的元素按照固定顺序组成的集合。数组会把同类型数据存放在一段连续的内存空间当中。数组内部所有元素的数据类型保持一致依靠下标访问每一个元素下标起始数值为0。在Java当中数组属于对象Object类当中定义的全部方法数组对象都可以直接使用。开发者可以声明任意类型的数组数组元素既可以是八种基本数据类型也可以是类、接口甚至可以把数组本身作为元素构成多维数组。数组使用前必须先完成声明遵循先定义、后使用的规则。一维数组的声明语法格式类型 数组名[ ]比如 char s [] 数组声明只是定义了一个数组引用系统不会给数组分配内存空间此时无法访问数组当中任意元素。只有完成数组初始化之后才可以使用数组元素初始化的过程也就是数组的创建过程。数组初始化分为静态初始化、动态初始化两类。静态初始化指在定义数组的同时直接给数组元素设置初始值使用大括号包裹全部初始值大括号内每一个值对应数组当中的一个元素。如果数组存放的是类类型元素使用new运算符仅仅会给数组本身分配内存空间并不会自动初始化数组里面的每一个元素。第一步先创建数组本体类型 数组名 [ ] new 类型[数组大小];第二步逐个创建数组当中的每一个元素数组名[0] new 类型(初值表);2、字符串字符串是由有限个字符构成的字符序列Java当中字符串属于对象并不是以\0作为结束标记的字符数组。Java标准包java.lang提供了String类与StringBuffer类用来完成字符串相关操作。String类用来处理不可改变的字符串StringBuffer类用来处理可以修改的字符串Java程序里的字符串分为常量和变量。字符串常量是使用双引号包裹的一串字符程序中一旦出现字符串常量系统会自动生成对应的String对象。比如System.out.println (This is a String);代码运行时会隐式创建This is a String字符串对象。字符串变量使用前需要显式完成声明以及初始化操作。