【Java Se】类与对象

或许学习了Java后,对于类与对象你只知道类——class,对象——object

如果真的是这样,请问你礼貌吗?

_白白不白
它们的概念是这样的:

类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。

对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。

其实在java中类是对象的集合,对象是类的实例。
对象是通过new className产生的,每一个对象都是通过类所实例化出来的,然后在调用类中的方法、类的构造方法

类与对象

首先类我们可以理解为一个我们自己写出来的较为复杂的数据结构,类似于C语言中的结构体,只不过这个结构体中有方法而已

每一个程序有且必须有一个主类,为程序的入口

类的成员可以包含:字段、方法、代码块、内部类和接口等

what…方法??类的方法??类的构造方法???什么鬼呢?

这里再解释一下Java的方法分为方法与构造方法

方法:

可以理解为c语言的函数,来解决某一类问题的的个方法(可恶!又是方法,注意不要上头,被绕进去)

构造方法:

构造方法主要就是为了创建对象,并且完成对象的初始化,类实例化一个对象时会自动调用构造方法,构造方法的基本语法为:

方法名必须与类名相同
构造方法没有返回值(连void都不能有)
每一个类中至少定义一个构造方法(没有明确定义,系统会自动生成一个无参数的构造方法,如果自己定义了,默认构造方法将不再生成)

接下来我们看一个代码:

class Baibai{
    int a;
    #构造方法不能有返回类型,因为无返回值
    public Baibai(){
        a=10;
        System.out.println(a);
        System.out.println("构造方法");
    }
    #普通方法必须要有返回类型
    public void General(){
        System.out.println("普通方法");
    }
}
public class Text_0 {
    public static void main(String[] args){
        Baibai B=new Baibai();
        B.General();
    }
}

它的输出为:
10
构造方法
普通方法

这里注意我们没有调用类中的Baibai()方法,但是它为什么运行了呢??

如果还存在这个疑问就说明之前的东西你没有完全懂!解释一下这个:

首先要知道的是

Baibai B=new Baibai();

中的Baibai()指的不是类,而是构造方法,对象是通过类的构造方法来创建的,如果说你写类的时候没有特意去写构造方法,那么系统会自动生成一个无参数的构造方法,即:

public Baibai(){}

其次,你要知道的是:使用对象时,new 执行了两个过程

为对象分配内存
调用对象的构造方法

也就是说当你创建对象时,程序会先执行一遍对应的构造方法

为什么我这里要加上“对应”呢?因为构建方法也是可以重载的

重载

重载是指我们可以定义一些名称相同的方法,通过定义不同的参数来区分这些方法,然后再调用时,Java虚拟机就会根据不同的参数列表来选择合适的方法执行。也就是说当一个重载方法被调用时,Java用参数的类型或个数来决定实际调用的重载方法。因此,每个重载方法的参数的类型或个数必须是不同。如下:

class Baibai{
    int a;
    public Baibai(){
        a=10;
        System.out.println(a);
        System.out.println("构造方法");
    }
    public Baibai(int b){
        a=b;
        System.out.println(a);
        System.out.println("构造方法的重载");
    }
    public void General(){
        System.out.println("普通方法");
    }
}
public class Text_0 {
    public static void main(String[] args){
        Baibai B=new Baibai();
        #同时赋初值
        Baibai B1=new Baibai(5);
        B.General();
    }
}

它的输出为:
10
构造方法
5
构造方法的重载
普通方法

在这里插入图片描述___________________________________________________________
下期继续更新
.
.
.
以上为个人理解,如有错误遇到瑕疵请多指教!
周末快乐!!!

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcccccccccccccccode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值