唉?第5章,第3章和第4章呢?
由于本来有C语言基础,学习第3章和第4章都是非常简单,所以我就不多说了。
但是我还是要说一个第4章的语法:foreach语法
Foreach语法:
表示不必创建int变量去对有访问项构成的序列进行计数,foreach将自动产生每一项。
列子:
public class Program{
String[] person = new String[]{"梁*","陶*","刘*"};
public static void main(String[] args) {
Program program = new Program();
for(String name : program.person){
System.out.println("name:"+name);
}
}
}
当然,不仅仅对是数组类型,对集合类也有效,例如:
public class Program{
List<String> person = new ArrayList<String>();
public static void main(String[] args) {
Program program = new Program();
program.person.add("梁*");
program.person.add("陶*");
program.person.add("刘*");
for(String name : program.person){
System.out.println("name:"+name);
}
}
}
好了,说完foreach语法了,我们来说说第5章一些我认为重要的点吧。
第5章 初始化与清理:
1. 构造器:
作用:负责类成员的初始化,确保在你操作对象之前,它已经被适当的初始化。
构造器名与类名一致;
两种构造器: 默认构造器(有参构造器)和 无参构造器 ;
2. 创建构造器:
a. 当你的类里没有构造器时,编译器会自动给你创建一个默认构造器;
b. 当你的类里有构造器,编译器不会帮你创建默认构造器;
c. 构造器可带参数;
d. 在我们创建对象时,就是调用构造方法的过程,例如:
Person me = new Person();
Person()就是一个构造方法;
a.
public class Program{
public static void main(String[] args) {
Program program = new Program();
}
}
以上类里没有构造器,编译器自动给你一个构造器
Program(){ }
b,c.
public class Program{
Program(String name){
}
public static void main(String[] args) {
Program program = new Program();//报错
}
}
以上类有带参数构造器,编译器不会帮你创建构造器,所以new Program()报错
public class Program{
Program(String name){
}
public static void main(String[] args) {
Program program = new Program("梁*");
}
}
d. 会根据构造器所带参数类型而执行指定的构造器
public class Program{
Program(String name){
System.out.println("name:"+name);
}
public Program(int age) {
System.out.println("age:"+age);
}
public static void main(String[] args) {
Program program0 = new Program("梁*");
Program program1 = new Program(21);
}
}
2个用法:
a. 表示当前对象的引用;
public class Program {
String name = null;
private void setname(String name) {
this.name = name;
}
public static void main(String[] args) {
Program program0 = new Program();
program0.setname("梁*");
System.out.println(program0.name);
}
}
打印结果:梁*
b. 在构造方法里调用构造方法
public class Program {
public Program() {
this("梁*");
}
public Program(String name){
System.out.println("---带参数构造方法被调用---");
System.out.println("---name:"+name);
}
public static void main(String[] args) {
Program program0 = new Program();
}
}
打印结果:
---带参数构造方法被调用---
---name:梁*
4. 成员初始化
当我们定义成员属性的时候,假如我们不给它赋值,那么它在初始化的时候回自动获得一个值,
不同类型对应的初始值:
5. 初始化的顺序:
a. 从上至下;
b. 静态数据初始化;
c. 对类的初始化(调用构造方法);