关于java类与对象的创建
我们在前面的文章中回顾了方法的定义和方法的调用,以及了解了面向对象的初步认识,我们本篇文章来了解一下类和对象的关系,还是遵循结合现实的方式去理解,不是死记硬背😀。
1、类
- 类是一种抽象的数据类型,它对某一类事物整体描述定义,但是不能代表某一个具体的事物。
- 比如,动物,植物,家具,手机,电脑等。
- 比如,Person类(人类),Car类(汽车类),这些都是用来描述或者定义某一类具体的事物应该具备的特点和行为。
2、对象
- 对象是抽象概念的具体实例。
- 比如,张三,就是一个人类的具体实例,张三家里的桌子,就是家具类的具体实例。
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。
3、创建与初始化对象
-
使用new关键字进行创建对象。
-
使用new关键字的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用。
-
我们直接用代码进行展示🤔
1、首先,程序中只允许存在一个main方法,我们可以新建一个包,然后新建一个类用于程序入口,其他的类里面,就不去写main方法了,这个在以后的代码编写中也要注意,要养成习惯。
2、我们在Application中,写我们最熟悉的main方法。
package oop.Demo02;
//一个项目应该只存在一个main方法。
public class Application {public static void main(String[] args) {}
}
3、然后我们再创建一个Student类,学生类,我们在这个类里面写属性和方法,一个类中,只能存在属性和方法!!!
package oop.Demo02;
//学生类
public class Student {//属性,字段String name;int age;//方法public void study(){System.out.println(this.name+"正在学习");//this代表,当前类}
}
4、我们将Student类实例化,要在main方法中。
package oop.Demo02;public class Application {public static void main(String[] args) {//类:抽象的,进行实例化//类实例化后,会返回一个自己的对象。//student对象,就是一个Student类的具体实例!Student student = new Student();Student xiaoming = new Student();Student xiaohong = new Student();}
}
我们在创建对象的时候,会看到Student student = new Student();,可以写出new.Student().var,然后回车就可以自动带出对象名字,对象名字是可以更改的,就像后边写出的,小明和小红,都是具体的人。
同一个类,可以产生出不同的对象,就像小明和小红,但是他们都具备共同的特性,就是名字和年龄,也叫做共同的属性。
5、我们来打印一下小明这个对象的名字和年龄。
package oop.Demo02;public class Application {public static void main(String[] args) {Student xiaoming = new Student();Student xiaohong = new Student();System.out.println(xiaoming.name+"\n"+xiaoming.age);}
}
我们执行一下代码,可以发现,输出的是null。
null
0进程结束......
所以,我们可以知道,名字这个属性没有赋值,默认值就是空(null),年龄是int类型,没有赋值,默认值是0。
6、我们要给小明的名字和年龄进行赋值,但是切记,不要在类的属性后边赋值,否则创建的所有对象的名字都叫一个名字了!!
下面给大家带来错误示范!!!
package oop.Demo02;
//学生类
public class Student {//属性,字段String name="小明";//除非是某些字段要求就是默认值,否则在这里赋值所有创建的对象初始值都是一样的!int age;//方法public void study(){System.out.println(this.name+"正在学习");//this代表,当前类}
}
下面给大家带来正确示范!
package oop.Demo02;public class Application {public static void main(String[] args) {Student xiaoming = new Student();Student xiaohong = new Student();xiaoming.name="小明";xiaoming.age=10;System.out.println(xiaoming.name+"\n"+xiaoming.age);}
}
我们执行一下代码,可以发现,输出的是我们所赋的值。
小明
10进程结束.....
我们刚刚只是给xiaoming赋值了,但是没有给xiaohong赋值,所以我们可以输出一下小红,看看是不是没有值。
package oop.Demo02;public class Application {public static void main(String[] args) {Student xiaoming = new Student();Student xiaohong = new Student();xiaoming.name="小明";xiaoming.age=10;System.out.println(xiaoming.name+"\n"+xiaoming.age);System.out.println(xiaohong.name+"\n"+xiaohong.age);}
}
我们执行一下代码。
小明
10
null
0进程结束.....
我们在给小红赋值一下😀
public class Application {public static void main(String[] args) {Student xiaoming = new Student();Student xiaohong = new Student();xiaoming.name="小明";xiaoming.age=10;xiaohong.name="小红";xiaohong.age=10;System.out.println(xiaoming.name+"\n"+xiaoming.age);System.out.println(xiaohong.name+"\n"+xiaohong.age);}
}
我们执行一下代码。
小明
10
小红
10进程结束.....
所以我们可以发现,类就有点像一个模板,我们可以通过赋值,来创建不同的对象,如果把世界想象成一个程序的话,所有人都是一个模板,People类,每个人有每个人的身高,体重,年龄,国家,职业,性格,星座等。
面向对象编程的本质:以类的方式组织代码,以对象的组织数据。
7、我们刚刚在类中创建了一个方法,我们直接调用一下。
public void study(){System.out.println(this.name+"正在学习");//this代表,当前类}
public class Application {public static void main(String[] args) {Student xiaoming = new Student();Student xiaohong = new Student();xiaoming.name="小明";xiaoming.age=10;xiaoming.study();//System.out.println(xiaohong.name+"\n"+xiaohong.age);}
}
我们执行一下代码。
小明正在学习进程结束.....
4、人生建议
学习编程的好处,就是可以对世界进行更改的建模,模块化,抽象化,但是不要做一个宅男宅女!要多去体验生活,工作不是生活的全部,赚钱也不是生活的全部,我们要尽可能的让生活变的丰富多彩,不断的提升自己的认知,眼界,一定要有自己喜欢的事情去做(本人就非常喜欢画画,美术方面的东西😊),人所热爱的便是生活!