【跟我学java就对了!!!】:类和对象

1.类

(1)定义

​ class就是类,类是引用类型,类可以由字段(也就是成员变量,也可以叫属性)和方法组成。注意,字段定义在类内,方法外。方法内的定义叫局部变量。

成员变量的默认值是0,如果是引用类型的成员变量,那么默认值是null。

我们来举个类的样版:

import java.util.Arrays;
import java.util.Scanner;

class Student{
    String name;
    int age;
    String sex;
    int score;
    //方法
    public void getscore(){
        System.out.println(name+"的成绩:"+score);
    }
}
public class de {

    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "掌门";
        s1.score = 98;
        s1.getscore();
    }
}

结果是:
在这里插入图片描述
我们来分析一下以上的代码:
在这里插入图片描述
我们通过对象名.成员变量来操作对象内的属性。

由于s1是一个引用类型,所以我们创建的时候也可以这样做:
在这里插入图片描述
那我们再来看一个小知识点
在这里插入图片描述
这段代码是什么意思呢?

在这里插入图片描述
我们现在知道他们俩是指向同一个对象(这里需要注意一点,一个引用不能同时指向多个对象),那么s1和s2的地址呢?

我们用代码来看一下:

public static void main(String[] args) {
    Student s1 = new Student();
    Student s2 = s1;
    System.out.println(s1);
    System.out.println(s2);
}

结果:
在这里插入图片描述
虽然这个打印出来的地址不是真正的计算机内存的地址,是通过转换而来的,但是计算机转换的方式都是一样的,所以我们就可以认为s1和s2储存的地址是一样的。


(2)成员变量

①普通成员变量(实例成员变量)

实例化对象之后才能用。

②静态成员变量(或者叫类变量)

加了static的变量。静态成员变量要通过类名访问。否则会有警告。

这个代码中s1是对象,Student是类。
在这里插入图片描述
静态成员变量存储在方法区里面。不在对象里面,跟对象无关。就算我没有定义一个对象,也可以通过类名找到我们的静态成员变量。

(3)方法

①普通方法(实例成员方法)

实例化对象之后才能用。

②静态方法(或者叫类方法)

就是普通方法多了个static。

和上述成员变量同理。

但要注意,静态方法只能访问静态成员变量。

因为静态方法是通过类名调用的,没有对象参与,所以没有普通的成员变量,也没有普通的方法。

如果想要静态方法使用普通方法,就这样操作:

class Student{
    String name;
    int age;
    String sex;
    int score;
    static int num;
    //方法
    public void getscore(){
        System.out.println(name+"的成绩:"+score);
    }
    public static void regetscore(){
        Student s1 = new Student();
        s1.getscore();
    }
}

在这里插入图片描述
只要定义了一个对象,就可以访问普通方法了。

要想在静态方法中使用静态成员变量也是如此。

2.对象

就是通过类创建的一个变量。
在这里插入图片描述
s1就是一个对象。

(1)匿名对象

代码如下:
在这里插入图片描述
这个新创的对象没有引用接收,是一个匿名对象,只能使用一次,后面就不能用了。

(2)序列化

吧一个对象变成字符串的过程。

(3)反序列化

把字符串变成一个对象的过程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值