1:构造方法(掌握) |
(1)作用:对对象的数据进行初始化。 |
(2)特点: |
A:方法名和类名相同 |
B:没有返回值类型 |
C:没有返回值 |
(3)注意事项 |
A:如果我们没写构造方法,系统将默认给出无参构造方法 |
B:如果我们写了构造方法,系统将不再给出默认无参构造方法 |
建议:我们自己手动给出无参构造方法 |
(4)给成员变量赋值: |
A:无参+setXxx() |
B:带参 |
(5)一个标准的代码: |
class Student { |
private String name; |
private int age; |
public Student() {} |
public Student(String name,int age) { |
this.name = name; |
this.age = age; |
} |
public void setName(String name) { |
this.name = name; |
} |
public String getName() { |
return name; |
} |
public void setAge(int age) { |
this.age = age; |
} |
public int getAge() { |
return age; |
} |
public void show() { |
System.out.println("姓名是:"+name+",年龄是:"+age); |
} |
} |
class StudentTest { |
public static void main(String[] args) { |
//无参+setXxx() |
Student s = new Student(); |
s.setName("林青霞"); |
s.setAge(28); |
s.show(); |
//带参 |
Student ss = new Student("张曼玉",20); |
ss.show(); |
} |
} |
2:对象的初始化过程(理解) |
(1)Student s = new Student();做了哪些事情 |
A:加载Student.class文件进内存 |
B:在栈中为s开辟空间 |
C:在堆中为学生对象开辟空间 |
D:为学生对象的成员变量赋默认值 |
E:为学生对象的成员变量赋显示值 |
F:通过构造方法给成员变量赋值 |
G:对象构造完毕,把地址赋值给s变量 |
3:面向对象的练习(掌握) |
(1)写一个类Demo,里面有一个求和功能。并测试。 |
(2)写一个长方形的类,里面有求周长和面积的功能。并测试。 |
(3)自己分析员工类,实现,并测试。 |
(4)自己写一个包含了加减乘除运算的类,并测试。 |
4:static关键字(掌握) |
(1)是一个状态修饰符。静态的意思 |
(2)它可以修饰成员变量和成员方法 |
(3)特点: |
A:随着类的加载而加载 |
B:优先于对象存在 |
C:被所有对象共享 |
这也是判断我们是不是该使用静态的条件 |
举例:饮水机和水杯例子。 |
D:可以通过类名调用 |
静态修饰的内容,可以通过类名调用,也可以通过对象名调用 |
(4)方法访问特点 |
A:普通成员方法 |
可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法 |
B:静态成员方法 |
只能访问静态成员变量,静态成员方法 |
简记:静态只能访问静态 |
注意: |
静态中是不能有this的。 |
先进内存的不能访问后进内存的。反之可以。 |
5:静态成员变量和普通成员变量的区别(理解) |
(1)所属不同 |
静态属于类的,称为类变量 |
非静态属于对象的,称为对象变量,实例变量 |
(2)内存空间不同 |
静态在方法区的静态区 |
非静态在堆内存 |
(3)生命周期不同 |
静态随着类的加载而加载,随着类的消失而消失 |
非静态随着对象的创建而存在,随着对象的消失而消失 |
(4)调用不同 |
静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用 |
非静态只能通过对象名调用 |
6:main方法是静态的(理解) |
(1)public static void main(String[] args) |
7:制作帮助文档(了解) |
(1)写代码 |
(2)加文档注释 |
(3)通过javadoc工具生成说明书 |
8:使用帮助文档(掌握) |
请参照:07_学习并使用帮助文档 --> 如何使用帮助文档.txt |
9:学习Math类(掌握) |
(1)Math:针对数学进行运算的类 |
(2)特点:没有构造方法,因为它的成员都是静态的 |
(3)产生随机数: |
public static double random(): 产生随机数,范围[0.0,1.0) |
(4)产生1-100之间的随机数 |
int number = (int)(Math.random()*100)+1; |
(5)猜数字小游戏案例 |
自己对着我的分析写一遍 |
10:代码块(理解) |
(1)在java中用{}起来的代码 |
(2)分类: |
局部代码块:在方法中。限定变量生命周期,及早释放,提高内存使用率 |
构造代码块:在类中方法外。 |
把多个构造中的相同代码用一个构造代码块体现,每次创建对象都会自动调用。 |
静态代码块:在类中方法外,用static修饰。 |
对类中的数据进行初始化。仅仅执行一次。 |
(3)面试题: |
A:静态代码块,构造代码块,构造方法的执行顺序? |