java基础3_1
面向对象
面向对象的三大特征:
封装 (Ecapsulation)
继承 (inheritance)
多态 (Polymorphism)
类是对某一类事物的描述,是抽象的、概念上的定义。
类可以把变量和函数封装在一起。
方法内部的局部变量和外部的类变量相同时 外部变量将被隐藏
类的定义:
[修饰符] class 类名[父类名] [接口1,接口2...]
{ 类属性声明;
类方法声明;
}
类属性是简单变量时,变量可不赋初值(和方法中的变量不同)。
类属性为对象时,定义中的类名一定是另一个类,后面的对象就是该类名的实例。
定义对象的目的是声明某个对象属于某个类,创建对象是指在内存中按照类的模式开辟了一块区域,把属性和方法放到了这个区域中,系统才可以从内存中调用它们。
定义对象的格式:
类名 对象名(可以是多个)
对象名是该对象在内存中地址的标识,如果把一个对象赋予另一个对象,只是把地址赋予另一个对象;
实例化:
对象名= new 类名();
也可放在同一语句:
类名 对象名=new 类名();
对象的生命周期
离开作用预对象名失效 对象成为垃圾;
对象名=null (也就是说对象名不指向对象) 对象成为垃圾;
对象的比较:
== 是用于比较引用变量的值是否相等
equals()是用于比较两个对象中的内容是否相等
实现类的封装
如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,只能通过方法修改这个属性
在定义一个类的成员(包括变量和方法)时,使用private关键字说明这个成员的访问权限,这个成员成了类的私有成员,只能被这个类的其他成员方法调用,而不能被其他的类中的方法调用
set方法:对私有变量赋值
get方法:获取变量值
模块的设计追求强内聚 弱耦合
在程序设计中应尽量避免一个类直接去访问另一个类中的数据
许多功能尽量在类的内部独立完成,提供给外部尽量少的方法调用
构造函数的定义与作用
具有与类相同的名称
不含返回值
不能用return返回一个值
构造方法的重载
和一般的方法重载一样,重载的构造方法 具有不同个数或不同类型的参数,编译器就可以根据这一点,判断出用new关键字产生对象时,该调用哪个构造方法了。
this
表示自身类或对象自身