或许学习了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 构造方法的重载 普通方法
___________________________________________________________ 下期继续更新 . . . 以上为个人理解,如有错误遇到瑕疵请多指教! 周末快乐!!!
|