一、学习要点
认真看书并查阅相关资料,掌握以下内容:
理解对象的创建与引用的关系
掌握构造方法的重载
掌握String类
掌握类的设计方法
掌握this关键字
掌握static关键字
理解引用传递并掌握基本应用
掌握单例模式
理解内部类
(一)学习总结
1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?
public class Test {
public static void main(String args[]) {
Foo obj = new Foo();
}
}
class Foo{
int value;
public Foo(int intValue){
value = intValue;
}
}
- 不能通过编译
- 类中只定义了有参的构造函数,如果一个类中已经明确定义了构造方法,则系统不再提供默认的构造方法。
- 为了避免出现错误,在一个类中如果定义了一个有参的构造方法时,最好再定义一个无参的构造方法。
构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。
对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。.
当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
方法重载:
1.必须在同一个类
2.方法名相同
3.方法参数个数或参数类型(或参数顺序)不同
注:
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,
非方法重载,因为他们的参数类型顺序一样是int,String,int
2.方法重载与访问权限修饰符和方法返回值无关
2.运行下列程序,结果是什么?分析原因,应如何修改。
public class Test {
public static void main(String[] args) {
MyClass[] arr=new MyClass[3];
arr[1].value=100;
}
}
class MyClass{
public int value=1;
}
无法运行
3.运行下列程序,结果是什么?说明原因。
public class Test {
public static void main(String[] args) {
Foo obj1 = new Foo();
Foo obj2 = new Foo();
System.out.println(obj1 == obj2);
}
}
class Foo{
int value = 100;
}
结果:false
new开辟内存空间,obj1与obj2首地址不同,所以无法正确。
4.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明。
所谓封装,就是通过定义类并且给类的属性和方法加上访问控制来抽象事物的本质特性。
封装就是定义一个类,然后给该类的属性(成员变量)和方法加上访问控制修饰词(public,private, protected,默认包访问权限),
使得该类的属性和方法对于类外部来说,想可见的可见,不想可见的隐藏。