面向对象思想编程

面向对象编程可以有效地帮助开发大规模的软件以及图形用户界面。面向过程的范式重点在于设计方法。面向对象的范式将数据和方法耦合在一起 构成对象。使用面向对象范式的软件设计重点在对象以及对对象的操作上。 

面向对象和面向过程

面向对象和面向过程都是一种思考方式

面向过程相当于是执行者,特征是费时间和费精力,比如以面向过程思考方式模拟下班回家吃饭:

    流程:买菜>>洗菜>>切菜>>做饭>>吃饭

每一步都需要自己来做,费时费力比较麻烦。

而面向对象相当是于指挥者,特征是省时间和省精力,如果以面向对象方式模拟下班回家吃饭则:

    流程:去饭馆>>交钱>>厨师做好>>带回家吃饭

这样的好处是主要任务交给了厨师,所以省时间和精力,方便。

面向过程和面向对象都是人类的常用思考方式,两种思考方式不互斥也不相互依赖,面向对象思想其实是基于面向过程。

注意:编程中没有绝对的面向对象,所有事情最终都是要被解决的。没有纯粹的面向对象,但有纯粹的面向过程。

对象和类

 对象:面向对象程序设计就是使用对象进行程序设计。对象代表现实世界中可以明确标识的一个实体。即万事万物皆对象。

每个对象都有自己独特的标识、状态和行为。一个对象的状态是由当前数值的数据域表示。对象的行为是根据方法定义的。

例如:圆可以被作为一个对象,那么他的半径r就是他的属性即状态,可以为圆定义一个名为getArea()方法来求园的面积。圆对象可以调用这个方法来修改他的半径。

:类是指具有相同属性、行为和特征的对象的统称。例如我们所说的人类,就是有每个具体的人组成的,拥有共同的特征。

类里面包含着具体的属性和行为;

例如 简单创建一个人的类{ 属性有  年龄、性别、姓名、身高、体重等等    行为有吃饭()、唱歌()、学习()等等}

运用面向对象的思想我们来分析 将大象装进冰箱的步骤  。

对象共有两个,分别是大象和冰箱。冰箱类中 共有三种方法,分别是 打开冰箱、装大象、关冰箱。

类 大象{

}
类 冰箱{
    打开();
    装大象();
    关闭();
}
主类 Class{
    main()
    冰箱 bx=new 冰箱();   //创建冰箱和大象的对象
    大象 dx=new大象();
    bx.打开();           //调用对应类中的方法
    bx.装大象(dx);
    bx.关闭();
}

 

eg:用面向对象思想求圆的面积,周长个圆心距。代码如下

class Demo02{
    public static void main(String[] args){
        Circle c1=new Circle();     //创建圆对象
        c1.radius=10;               //对半径赋值
        Point o1=new Point();       //创建点对象
        o1.x=0;                     //对两点赋值
        o1.y=0;
        c1.o=o1;
        Circle c2=new Circle();
        c2.radius=10;
        Point o2=new Point();
        o2.x=10;
        o2.y=10;
        c2.o=o2;
        System.out.println();
        System.out.println(c1.getDistance(c2));
    }
}
class Circle{             //定义一个圆的类
    public double radius;         //对变量进行初始化
    public double pi=Math.PI;
    public Point o;
    public double getArea(){       //计算圆的面积
        double area=pi*radius*radius;
        return area;
    }
    public double getPerimeter(){     //计算圆的边长
        double perimeter=2*pi*radius;
        return perimeter;
    }
    public double getDistance(Circle c){    //计算当前圆到其他圆的距离  
        double distance=this.o.getDistance(c.o);  //c为另一个圆对象
        return distance;
    }
}
class Point{         //计算两点间距离
    public double x;
    public double y;
    public double getDistance(Point p){
        return Math.sqrt(Math.pow(this.x-p.x,2)+Math.pow(this.y-p.y,2));  //this.x指当前c1圆的坐标   p.x指后面c2圆的坐标
    }
}

注意:当程序中创建多个类时,编译时候有几个类就会生成几个class文件。

           没有主函数的类不能够独立运行。

           有主函数的类称为主类,主要用来运行程序。

该的程序运行流程:经过编译会生成Demo02.class文件、Circle.class文件和Point.class文件,主程序Demo02.calss文件会被加载进虚拟机开始运行,其余两个文件也会随着加载进虚拟机运行。

创建对象过程:

 1、在堆内存中开辟一个空间并分配地址(空间大小由系统分配)
 2、对成员变量进行 (默认初始化)
 3、然后对成员变量进行(显示初始化)
 4、目前而言 对象创建完毕 将对象的地址赋予函数中的变量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值