一.类的定义以及对象的实例化
1.面向对象的初步认知
1.1什么是面向对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。
1.2 面向对象与面向过程
什么是面向对象和面向过程呢,我们就拿洗衣服的例子来给大家讲解一下,我们大家传统的洗衣服流程是这样的
而现代洗衣过程是
传统的洗衣,注重过程,每一步都缺一不可,每一步又都要自己亲自动手,这就是面向过程,在编程c/c++就是面向过程的语言,它们注重代码的底层逻辑。
而现代洗衣,只需要我们把衣服和洗衣粉放进洗衣机里,会使用洗衣机即可,整个过程主要是:人,衣服,洗衣粉,洗衣机四个对象之间交互完成的,人不需要关注洗衣机具体是如何洗衣服的,是如何甩干的,这就是面向对象,编程中Java就是一款面对对象的语言。
2.类的定义和使用
面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机。
在现实生活中,如果我们想要洗衣机的各项数据,我们观察肯定是观察不出来的,这个时候就需要找厂家或者它的设计师要来他的设计图纸,这样我们就能知道这个洗衣机的参数。而这其中洗衣机这个实体就是对象,而这个洗衣机的设计图纸就是类。
2.1简单认识类
类是用来对一个实体(对象)来进行描述的,主要描述该实体具体有哪些属性,描述完计算机就可以识别了。
2.2类的定义格式
在Java中定义类时需要用到关键字“class”,具体语法如:
// 创建类
class ClassName{
field; // 字段(属性) 或者 成员变量
method; // 行为 或者 成员方法
}
class为定义类的关键字,ClassNum为类的名字,{}中为类的主体。
注意事项:
1.类名注意采用大驼峰定义
2.成员前写法统一为public,后面会详细解释
3.此处写的方法不带 static 关键字. 后面会详细解释
2.3 练习(定义一个dog类)
要定义一个类,首先要观察这个对象有哪些属性,狗有名字(name),毛发颜色(color),狗会跑,吃饭…我们可以根据这些属性来定义一个狗类。如:
class PetDog {
public String name;//名字
public String color;//颜色
// 狗的属性
public void eat() {
System.out.println(name + "在吃饭");
}
// 狗的行为
public void run() {
System.out.println(name + "在奔跑");
}
}
注意事项:
1.一般一个文件当中只定义一个类
2.main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)
3.public修饰的类必须要和文件名相同
4.不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改(给同学演示).
3.类的实例化
3.1 什么是实例化
定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义了一个新的类型,比如上述的:PetDog类和Student类。它们都是类(一种新定义的类型)有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。
用类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
3.2实例对象
拿上节定义的Dog类来实例一个对象,如:
class PetDog{
public String name;// 名字
public String color;//毛发颜色
public void eat(){
System.out.println(name+"正在吃饭");
}
public void run(){
System.out.println(name+"正在奔跑");
}
}
public class Main{
public static void main(String[] args) {
PetDog dogh = new PetDog(); //通过new实例化对象
dogh.name = "阿黄";//给对象赋名
dogh.color = "黑黄";//给对象毛发颜色
dogh.eat();//调用eat方法
dogh.run();//调用run方法
PetDog dogs = new PetDog();//实例化第二个对象
dogs.name = "阿蓝";
dogs.color = "黑白";
dogs.eat();
dogs.run();
}
}
//
//
//
//
注意事项
1.new关键字用于创建一个对象的实例。
2.使用"."来访问对象中的属性和方法。
3.同一个类可以创建多个实例
3.3类和对象的说明
- 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员.
- 类是一种自定义的类型,可以用来定义变量.
- 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
- 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间