【JavaSE】类与对象

目录

▮类

▪类 

▪抽象之,类是方法容器

▪抽象之,类是自定义的数据类型

▮类的创建

▪定义类

▪类成员与实例成员 

▮this引用

▮创建对象和操作成员

▪创建对象

▪操作成员

▮类与对象的生命周期

▮进一步来了解类与对象

▪类方法与实例方法的区别,跟类变量与实例变量的区别不一样

▪将类成员与实例成员分隔理解


        欢迎各位在评论区提问或指出问题,请多多赐教   ——海鱼🐟


▮类

▪类 

411355da7dfe41ec8d107b4ef04ac289.png

         “类”是个什么东西?它给我的感觉既具体,又抽象。从抽象上来看,类是“方法(函数)容器”和“自定义的数据类型;从具体上来看,类是对象的母本,是现实里,各种同类对象的共性部分,在属性和行为上的共性。

▪抽象之,类是方法容器

        何谓容器?就是一个只用来装东西的物品,容器无法修改里面存放的物品,容器是用来存放和分类物品的。这里的物品指的就是方法。

▪抽象之,类是自定义的数据类型

        自定义数据类型就是除了8种基本类型以外的其他类型,但这个数据类型由八种基本数据组成,组成一种数据复合体。

        比如,类是数据类型,String、int等也是数据类型;类能定义引用类型,String、int等能定义变量;类有new的新对象,String、int等有已经定义好的常量。类也是一种数据类型,往里面装入不同的数值,就创造出了不同的对象。


▮类的创建

▪定义类

7f5d9030529244fda723bbc85ff3ba77.png

        •代码示例

public class Point {  //point:n,点
    private int x; //横坐标,实例变量
    private int y; //纵坐标,实例变量
    static String tybe = "point"; //图形类型,类变量
    //输出坐标,实例方法
    public void getCoordinates(){ 
        System.out.println("("+ x + " , " + y + ")");
    }
    //画出图形,类方法
    public static void drawing(){
        System.out.println(tybe + ": • ");
    }
    //构造方法,实例方法
    public Point(int x,int y){
        this.x = x;
        this.y = y;
    }
}

▪类成员与实例成员 

        类方法和类变量,从名字上就能看出,这些成员是属于类的,而不属于类的子本对象。但由于所有对象都是从母本那拷贝过来的,所以,所有对象都拥有和能使用这些类成员。

        实例方法和实例变量,这些成员是属于每个对象的。每个对象的实例成员都有所差异,单独的属于单个对象。(博主个人见解,请理性看待)


▮this引用

//构造方法
    public Point(int x,int y){
        this.x = x; //实例变量与方法参数同名
        this.y = y;
    }

        在方法内部,当方法参数与对象的变量同名时,为了将两者区分开来,在对象的变量前加上“this.”来表示这是对象的变量。

▮创建对象和操作成员

▪创建对象

public static void main(String[] args) {
        Point p = new Point(1,2); // 创建对象
        p.getCoordinates(); // 实例方法用“对象.”调用
        Point.drawing();    // 类方法用“类.”调用
        System.out.println("Point.tybe"); 
    }

        Point p:定义了一个类型为Point的引用:p,类似于C语言里的指针,但仅仅只是类似。new:Java的关键字,作用是创建对象,分配内存,返回指向该内存的引用。Point(1,2):Point的构造方法,在new的时候调用。

▪操作成员

9618189a917044909ecb6a9640082a05.png

        实例成员只能用对象名访问,而类成员用类名访问。就算类成员可以用对象名访问也不要用对象名访问。

▮类与对象的生命周期

        程序中一但出现类名,类就会被加载进内存,直到程序结束后再释放。所以,类在程序里只会加载一次,在出现类名的时候加载,一直保留到程序结束。
        程序中每new一次对象,对象就会被加载进内存,当没有引用指向此对象,此对象就会被释放。所以,程序里可以加载多个对象,当对象无引用后就被释放。

▮进一步来了解类与对象(此处是博主个人理解,请理性看待) 

▪类方法与实例方法的区别,跟类变量与实例变量的区别不一样

ef19bbb0fdaf4841a3da07d4a9e07fef.png

        先提出两个问题,类中的实例方法是不是为所有对象所共用?类方法和实例方法的区别是什么?

        实例方法和类方法的差别在于:实例方法里有着一个隐藏参数。这个参数用于接受当前实例方法所处的对象,“this.”实际上就是使用了这个参数。通过这个隐藏参数,实例方法才能访问对象里的实例变量和其他实例方法。类方法中没有这个参数,所以类方法里不能调用对象的实例成员,不能使用this,不能使用super(与继承有关)。

        类变量是所有对象共用;实例变量是对象所独有;实例方法同类方法一样,为所有对象所共用,只是前者有个隐藏参数罢了。所以可以说,类方法是操作类的方法,实例方法是操作对象的方法;而不是,类方法是类的方法,实例方法是对象的方法。

▪将类成员与实例成员分隔理解

        类成员是属于类的,不是属于对象的。所以要用类名调用类成员,而不是靠对象。对象只是复制了类,从而得到了属于类的类成员。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值