1.构造代码块
~~~
package obj.b1;
public class Test {
public static void main(String[] args) {
Person p1 =new Person();
Person p2 =new Person("小李");
}
}
/*
* 对象一建立就运行了,而且优先于构造函数执行
* 给对象进行初始化的
* 构造代码块和构造方法的区别:
* 构造方法是对应的对象进行初始化,
* 构造代码块是给所有的对象进行统一的初始化
* 构造代码块中定义是不用对象共性的初始化内容
*
* */
class Person{
String name;
Person(){
System.out.println("我是无参构造方法");
}
Person(String name){
System.out.println("我是有参构造方法");
}
{
System.out.println("我是构造代码块");
}
}
~~~
![](https://box.kancloud.cn/53e7806b35b54eb450fc3ef6bde5c11a_170x133.png)
2.构造方法之间的调用
~~~
package obj.b2;
public class Test {
public static void main(String[] args) {
Student s=new Student("小明",2);
}
}
/*
* this:看上去,用来区分局部变量和成员变量同名的情况
* this:就是代表本类对象,this代表它所在函数(方法)所属对象的引用
* 构造函数之间的调用只能通过this语句来完成
* 构造函数之间进行调用时,this语句只能出现在第一行,构造方法要先执行,
* 如果初始化当中还有初始化,那就去执行更细节的初始化
* */
class Student{
String name;
int age;
Student(){
System.out.println("无参构造方法");
}
Student(String name){
this();
this.name=name;
System.out.println("aaa");
}
Student(String name,int age){
this(name);
this.age=age;
}
}
~~~
![](https://box.kancloud.cn/36467009771d27c02ae44940df8c7e92_299x83.png)
- 书写心得
- 1.初识Java
- 2.变量、数据类型和运算符
- 实例:数据的输入
- 实例:变量互换
- 3.条件选择结构
- 案例:判断年份是否为闰年
- 案例:生成随机数
- 实例:剪刀石头布
- 4.循环结构
- 实例:猜数字游戏
- Myeclipse
- 实例:九九乘法表
- 实例:日历
- 5.数组
- JVM内存分析
- 键盘录入赋值数组
- 数组的length属性
- 数组的最大值(打擂台)
- 数组的排序
- 数组复制算法
- 数组的查找算法(搜索)
- 数组的插入算法
- 数组的冒泡算法
- 数组的选择排序
- 多维数组
- 实例:学生成绩管理系统
- 类和对象
- 概念
- 内存分析
- 创建类和对象
- 面向对象与内存分析
- 有参数无(有)返回值的调用
- 成员变量
- return和多参方法
- toString方法
- this关键字
- 封装
- 方法的重载
- 构造方法
- 阶段性总结
- 实例:学生管理系统
- Test.java
- Student.java
- Admin.java
- 构造代码块及构造函数之间的调用
- main方法和静态应用工具类及classpath
- static关键字
- 文档注释和静态代码块及单例模式
- 继承
- 多态
- 匿名对象和toString()和equals及final
- 抽象类和模板方法设计模式
- 接口
- 包机制和包与包之间的访问权限和jar包