对象

面向过程:主要针对过程(步骤)解决问题——核心思想:亲力亲为
面向对象:主要针对对象(别人)解决问题(不确定具体的底层实现),是面向过程之上的一种优化方式,其三大特点:继承,封装,多态。
类:具有相同特征(变量)和行为(函数)的事物的统称。
对象和类的关系:对象是类所描述出来的具体的事物。

主 类——程序主要且唯一入口,主要负责程序的运行,不需要描述具体的事物。一般而言,主函数所在的类为主类,其不需要创建对象,可以直接调用(JVM调用)。
实体类——主要负责描述事物,属性(成员变量)和行为(成员函数)。成员函数可以直接调用成员变量。
工具类——一般不会创建对象,通过类调用函数(静态函数)。 如:Math.random()

静态不能直接调用非静态;
非静态可以调用静态。

new 类();       //按照类所描述的内容创建一个具体对象。
public class House{
    Double area;      //成员变量
    String color;
    public void isLocation(){        //成员函数
        System.out.print("我的面积为:"+area+" ,我的颜色为: "+color);
    }
}

public class HouseTest{
    public static void main(String[] args){
        House h=new House();  //创建对象
        System.out.println(h.area);
        System.out.println(h.color);
    }
}
对象的创建流程:
1.主函数先进栈。
2.执行new House(),在堆内存中开辟一个空间,随机分配地址。
3.在对象空间中创建成员变量的空间,对成员变量进行默认初始化(基本数据类型  整数:0   小数:0.0  字符:0  布尔:false)
(引用数据类型  null)
*成员函数不在对象空间。*
4.在函数栈中创建局部变量,存放该对象在堆内存中的地址。

在这里插入图片描述成员变量防止外界修改+private,此时外界不能修改和访问,访问器则为了外界可以访问,修改器则为了外界可以更改成员变量。
访问器:getter
修改器: setter
this:表示当前对象的引用,区分调用函数相对应的对象。

public class point(){
    private double x;
    private double y;
    public double getDistance(Point p){
        return Math.hypot(this.x-p.x;this.y-y);      //当前x-传进来x,当前y-传进来y
    }
    public double getX(){                //访问器
        return this.x;
    }
    public double getY(){
        return this.y;
    }
    public void setX(double x){         //修改器
        this.x=x;
    }
    public void setY(double y){           
        this.y=y;
    }
}

public class Circle(){
    private Point center;
    //圆和圆之间的距离
    public double getDistanse(circle other){
        return getDistance(other center);    //调用当前类的同级别函数
    }
    //圆和点之间的距离
    public double getDistanse(Point center){
        return this.center.getDistance(point);   //调用Point类里面的求点和点距离函数
    }
    public double getCenter(){
        return this.getCenter;
    }
    public void setCenter(Point center){
        this.center=center;
    }
}

public class CircleTest{
    public static void main(String[] args){
        Circle c1=new Circle();
        Point p1=new Point();
        p1.setX(10);
        p1.setY(10);
        c1.setCenter(p1);

        Circle c2=new Circle();
        Point p2=new Point();
        p2.setX(20);
        p2.setY(20);
        c2.setCenter(p2);

        System.out.println(c1.getDistance(c2));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值