数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
数组声明 dataType[] arrayRefVar; // 首选的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首选方法 创建数组 arrayRefVar = new dataType[1 arraySize];数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。
三种初始化静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
动态初始化
数组定义、为数组元素分配空间、赋值的操作、分开进行。
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实
例变量同样的方式被隐式初始化。
下标的合法区间:[0, length-1],如果越界就会报错;
for 和For-Each 循环 for(type element: array){ System.out.println(element); } for (int i = 1; i < myList.length; i++) { System.out.println(myList[i]); } 多维数组 type[][] typeName = new type[typeLength1][1 typeLength2]; Arrays 类数组的工具类java.util.Arrays
java.util.Arrays 类能方便地操作数组. 使用之前需要导包!
具有以下常用功能:
给数组赋值:通过 fill 方法。
对数组排序:通过 sort 方法,按升序。
比较数组:通过 equals 方法比较数组中元素值是否相等。
查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
转换为list: 通过asList(a)进行转换
万物皆为对象!!!对象是抽象概念的具体实例。
以类的方式组织代码,以对象的组织(封装)数据就是面向对象
继承继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
class 父类 { } class 子类 extends 父类 { } public interface A { public void eat(); public void sleep(); } public interface B { public void show(); } public class C implements A,B { }为什么要继承,因为有重复。所以才继承,进而我们就知道了。父类就是公共部分的定义或规则
Java 不支持多继承(只能继承一个类),但支持多重继承。
特点
子类拥有父类非 private 的属性、方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)
super 与 this 关键字
class Animal { void eat() { System.out.println("animal : eat"); } } class Dog extends Animal { void eat() { System.out.println("dog : eat"); } void eatTest() { this.eat(); // this 调用自己的方法 super.eat(); // super 调用父类方法 } } public class Test { public static void main(String[] args) { Animal a = new Animal(); a.eat(); Dog d = new Dog(); d.eatTest(); } } animal : eat dog : eat animal : eatfinal关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;
构造函数