面向对象基本概念

1.1
对于面向对象就是自己充当的角色就是指挥者,面向过程自己充当的角色就是执行者,
那么如何理解这个指挥者和执行者呢?
假如你要吃饭,如果你自己做饭,那你就是执行者,就是面向过程;如果你叫外卖,那你就是指挥者,就是面向对象,就是把做饭的过程给封装成对象了,当然面向过程里面也包含了面向对象,平常我们写的代码就是面向过程的
面向过程其实是最基本的思路,而面向对象是基于面向过程的思路
System.out.print(“来了老弟”)也是一种面向对象,我们是指挥者,而系统是执行者,我们让系统给我们输出
Scanner scanner =new Scanner(System.in)//也是一种面向对象,我们是指挥者
Random random=new Random();//也是一种面向对象 我们是指挥者,系统是执行者
1.2对象与类
面向对象有什么好处呢?
可以仿真的模拟现实生活中的事物,可以实现更加复杂的业务逻辑
那么什么是对象呢?但凡是真实存在且具体的事物都称之为对象,一个打火机,一根烟,就是由某一个类所描述出来的具体事物
2,什么是类?
具有相同行为和特征的一些具体事物的总称
类就相当于大楼的设计图纸
对象就是由该图纸所建成的具体大楼,
类就是用于描述事物的,
对象就是由一个类所描述的具体内容从而产生的一个具体事物

类主要描述描述事物的那些方面呢?
主要描述事物的特性和属性,可以用数据来表示,
描述事物的行为,可以用函数来表示
属性x,y
行为getDistance()
注意喽!
为了方便管理,建议一个.java文件一个类,这样做是为方便管理
如何创建一个类呢?
就目前而言,格式就是类名/数据类型 变量名 =new 类名();
我们可以举个例子来说说
就说一个点Point这个对象,它的属性就是说横坐标x,纵坐标y,它的行为呢,行为就是获取两点之间的距离getDistance()

class Point{
    //属性
    double x;
    double y;
    //行为
    public  double getDistance(Point other){
        return Math.hypot(x-other.x, y-other.y);
    }
}

我们现在来指挥下这个Point这个对象

class Test01{
   public static void main(String[] args){
       Point p1=new Point();
       Point p2=new Point();
       p1.x=12;
       p1.y=78;
       p2.x=23;
       p2.y=16;
       System.out.print(p1.getDistance(p2));//求p1与p2之间的距离
       
   }
}

内存图是:
在这里插入图片描述
再来举个例子
我们重新建立一个三角形的对象
它的属性就是点
它的行为就是获取周长getlength();获取面积getArea();
这是代码

class Triangle{
    Point p1;
    Point p2;
    Point p3;
    public double getLength(){//获取这个三角形的周长
      return p1.getDistance(p2)+p2.getDistance(p3)+p1.getDistance(p3);
    }
    public double getArea(){
        double side1=p1.getDistance(p2);
        double side2=p2.getDistance(p3);
        double side3=p1.getDistance(p3);
        double s=(side1+side2+side3)/2;
        return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
    }
}
然后来指挥这个对象
class Test02{
    public static void  main(String[] args){
        Triangle t=new Triangle();
        Point p1=new Point();
        Point p2=new Point();
        Point p3=new Point();
        p1.x=10;
        p1.y=12;
        p2.x=12;
        p2.y=18;
        p3.x=12;
        p3.y=10;
        t.p1=p1;
        t.p2=p2;
        t.p3=p3;
        System.out.println(t.getLength());
        System.out.println(t.getArea());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值