--------------------------- android培训 java培训 期 待与您交流! --------------------
面向对象的开发过程就是不断地创建对象,适用对象,指挥对象做事情。设计的过程就是不断地管理和维护对象之间的关系。
面向对象就是把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。对象拥有多种特性,如学生有年龄、性别、身高、体重、重量、学号,这些特性被称为对象的属性。对象还有很多功能,如学生可以学习、睡觉、吃饭、看电影等行为,这些行为被称为对象的方法,实际上这些方法是一种函数。
面向对象的特征有封装、继承和多态。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
代码如下:
public class studentDemo {
public static void main(String[] args) {
student s=new student();
s.setName("lisi");
System.out.println("姓名:"+s.getName());
}
}
class student{
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
继承就是在现有类的基础上构建新的类,只支持单继承,但支持多层继承。关键字是extends。当一个类继承一个现有类后,可以对被继承类中的属性和方法进行重用。接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。接口关键字是interface。
由于多个类中存在相同属性和行为时,如果将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。这样就实现了减少代码的目的。同时子类可以直接访问父类中的非私有的属性和行为。继承的出现提高了代码的复用性,使类与类之间产生了关系,提供了多态的前提。
继承出现函数覆盖,子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写;当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。覆盖时,子类方法权限一定要大于等于父类方法权限,静态只能覆盖静态。
继承经常会出现抽象类,java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。抽象类和抽象方法必须用abstract关键字来修饰。格式:修饰符abstract 返回值类型函数名(参数列表);抽象类不可以被实例化,也就是不可以用new创建对象。抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,否则该子类也是抽象类。
代码如下:
abstract class person{
private String name;
public void setName(String name){
this.name=name;
}
public void getName(){
System.out.println(name);
}
public abstract void learn();
public abstract void getHoliday();
}
class student extends person
{
public void learn(){
System.out.println("学生在学习!!!");
}
public void getHoliday(){
System.out.println("学生在度假!!!");
}
}
interface eat{
void eat();
}
class BaseStudent extends student implements eat
{
public void eat() {
System.out.println("基础班学生在吃饭");
}
}
class AdvStudent extends student implements eat
{
public void eat() {
System.out.println("就业班学生在吃饭");
}
}
public class extendsAndInterfaceDemo {
public static void main(String[] args) {
BaseStudent bs=new BaseStudent();
bs.setName("wangwu");
bs.getName();
bs.getHoliday();
bs.eat();
new AdvStudent().eat();//创建对象调用本类的方法
}
}
多态性是指允许不同类的对象对同一消息作出响应。多态的出现虽然大大的提高程序的扩展性,但是只能使用父类的引用访问父类中的成员。多态的前提必须是类与类之间有关系。要么继承,要么实现。也就是说存在覆盖。成员函数在多态调用时,编译看左边,运行看右边。
abstract class person{
abstract void eat();
}
class student extends person{
public void eat(){
System.out.println("吃学生餐");
}
}
class worker extends person{
public void eat(){
System.out.println("吃工作餐");
}
}
public class duoTaiDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
student s=new student(); //创建学生对象
function(s); //多态的运用
}
public static void function(person a)//person a = new student();
{
a.eat();
}
}