> 文档中心 > 【Java Se】类与对象

【Java Se】类与对象

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

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

【Java Se】类与对象
它们的概念是这样的:

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

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

其实在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
构造方法的重载
普通方法

【Java Se】类与对象___________________________________________________________
下期继续更新
.
.
.
以上为个人理解,如有错误遇到瑕疵请多指教!
周末快乐!!!