数组
数组的概念:是一种容器,可以同时存放多个数据值。
数组的特点:
- 数组是一种引用数据类型
- 数组当中的多个数据,类型必须统一
- 数组的长度在程序运行期间不可改变
两种常见的初始化数组方式:
1.动态初始化数组的格式:
数据类型[] 数组名称 = new 数据类型[数组长度];
public class Demo01Array {
public static void main(String[] args) {
// 创建一个数组,里面可以存放300个int数据
// 格式:数据类型[] 数组名称 = new 数据类型[数组长度];
int[] arrayA = new int[300];
}
}
使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为’\u0000’;
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null。
2.静态初始化基本格式:
数据类型[] 数组名称 = new 数据类型[] { 元素1, 元素2, … };
(静态初始化没有直接指定长度,但是仍然会自动推算得到长度。)
public class Demo02Array {
public static void main(String[] args) {
// 直接创建一个数组,里面装的全都是int数字,具体为:5、15、25
int[] arrayA = new int[] { 5, 15, 25, 40 };
// 创建一个数组,用来装字符串:"Hello"、"World"、"Java"
String[] arrayB = new String[] { "Hello", "World", "Java" };
}
}
静态初始化省略格式:
数据类型[] 数组名称 = { 元素1, 元素2, … };
public class Demo03Array {
public static void main(String[] args) {
// 省略格式的静态初始化
int[] arrayA = { 10, 20, 30 };
}
}
类与对象
类的定义格式:
class 类名称{
// 成员属性
数据类型 属性名;
// 成员方法
权限修饰符 返回值类型 方法名(形式参数列表){ //方法体 return 返回值; }
}
}
对象的定义格式:
类名 对象名 = new 类名();
使用对象访问类中的成员:
对象名.成员变量;
对象名.成员方法();
匿名对象:
没有对象名称的对象 就是匿名对象。
匿名对象只能使用一次,因为没有任何的对象引用,所以将称为垃圾,等待被G·C回收。 只使用一次的对象可以通过匿名对象的方式完成
构造方法
定义格式:
构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。举例:
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
作用: 用于对象初始化。
执行时机: 在创建对象时,自动调用
特点: 所有的Java类中都会至少存在一个构造方法 如果一个类中没有明确的编写构造方法, 则编译器会自动生成一个无参的构造方法, 构造方法中没有任何的代 码! 如果自行编写了任意一个构造器, 则编译器不会再自动生成无参的构造方法
建议:当类中有非常量成员变量时,建议提供两个版本的构造方法,一个是无参构造方法,一个是全属性做参数的构造方法。 当类中所有成员变量都是常量或者没有成员变量时,建议不提供任何版本的构造。
方法的重载:
方法名称相同, 参数类型或参数长度不同, 可以完成方法的重载 ! 方法的重载与返回值无关!
构造方法的重载:
参数列表的长度或类型不同即可完成构造方法的重载