一,面向对象的概述
面向对象的程序设计具有三个基本特征:(1)封装,(2)继承,(3)多态; 可以大大提高程序的可靠性,代码的可重用性和程序的可维护性,从而提高程序的开发效率。
1,封装
封装就是把客观事物抽象并封装成对象,即将数据成员,属性,方法等集合在一个整体内。
对象的初始化(1)提供一些get set 方法。
class Person{
private int age;
}
public int getAge{
return age;
}
public void getAge(int age){
this.age=age;// this 指向当前对象的内存
}
(2)通过构造函数
class Person{
private int age;
}
public person(){ //不带参数的构造函数 构造函数可以被重载
}
public Person(int age) {
System.out.println("Person(age)");
this.age = age;//this:指向当前对象的内存
}
(3)实力块初始化
class Person{
private int age;
privite string name;
}
{
this name="hejinman";
this age =22;
System.out.println()
}
(4)静态块初始化
静态块初始化(静态代码块):对象调用静态方法,编译器会发生警告,因为静态方法不属于对象。 static所修饰的方法或者静态成员不依赖于对象。通过类名直接调用。
static{
count=10;
System.out.println()
}
*对象初始化的优先级
(1).先static静态块初始化 后实例化代码块初始化 再构造函数
(2). 同等级和顺序有关
2,内部类
面试问题1:
1、 静态内部类如何访问外部类的非静态数据成员?
答:必须先产生一个外部类的对象,通过对象调用。
2、静态内部类是否拥有外部类对象?
答:静态内部类没有外部类对象
3、实例内部类有额外的开销(实例内部类是否用外部类的对象)?
答: 有 外部类.this. () 。
4、实例内部类中是否可以有静态数据成员 ?
答:有 ,但是只能在编译期间确定的值。final所修饰。