课时3:类与对象的定义及使用
摘要:在明晰了类与对象的关系之后,下面我们来了解一下在Java中类与对象的语法定义。
在Java里,类是一个独立的结构体,需要使用“class”关键字来进行定义。类主要由属性和方法两部分组成,其中,属性即一个个具体的变量,而方法则是可操作、能重复执行的代码段。
接下来,我们通过定义一个简单的类来做示例说明。例如,我们定义一个名为“Person”的类,用于描述人员相关信息。代码如下:
class Person{ //定义人员的姓名属性,这里属性通常是引用类型,首字母大写,默认值为空值(null) String name; //定义人员的年龄属性,int类型默认值为0 int age; //定义一个输出人员信息的方法,此方法通过对象来调用,所以不加“static”关键字 public void show(){ System.out.println("姓名:"+name+",年龄:"+age); } }
通过上述代码,我们便定义出了一个类,在这个类中,我们定义了两个属性和一个方法。
需要注意的是,这里属性和方法与之前所学的有所不同。之前在定义方法时,是在主函数等相关语境下定义且有主方法的情况,而现在定义的类中的方法是通过对象来调用的,所以不加“static”关键字,这点区别后续我们再做总结。
现在问题来了,有了类之后,如果想要使用类,那就必须通过对象来进行调用才能完成相应操作。而若要生成对象,则必须使用特定的语法格式来实现,下面给大家介绍两种格式,并逐一进行解释。
第一种格式是声明并实例化对象,语法格式为“类名称对象名称=new类名称();”,这其实是将两步操作合并完成了。这两步操作具体如下:
首先是声明对象,格式为“类名称对象名称;”,不过要注意,在为变量或对象定义时,通常都要为其设置一个默认值。我们之前在讲解数据类型的时候提到过,引用类型的默认值是“null”,所以建议大家按照规范来书写代码。
其次是实例化对象,格式为“对象名称=new类名称();”,通过这样的两步操作或者直接使用声明并实例化对象的格式,就能完成对象的创建了。
这两种做法能够助力我们完成程序中类的定义。
接下来进入类与对象的具体使用环节,我们依照上述方式来操作,使用类对象操作类。下面我先给出完整代码示例(后续部分展示会截取部分代码来说明),大家请看:
class Person{ String name; int age; public void show(){ System.out.println("姓名:"+name+",年龄:"+age); } } public class Main{ public static void main(String[]args){ Person p=new Person(); //这是声明并实例化对象的操作 //获取实例化对象后,就需要通过对象来进行类中的操作调用,有两种调用方式 //一是调用类中的属性,格式为:实例化对象.成员属性=赋值内容(进行赋值操作),或者直接输出该属性值 //二是调用类中的方法,格式为:实例化对象.方法名称() p.name="张三"; p.age=18; pr.tell(); //先给对象的属性赋值,然后调用对象的方法 //进行代码验证,使用Java编译器执行代码,查看程序执行情况 } }
通过上述代码,我们就完成了一个对象的基本使用流程,也就是先声明并实例化对象,接着通过对象去调用属性进行赋值等操作,而后再通过对象调用类中的方法。
不过需要牢记一点,倘若在程序中并未对对象的属性内容进行设置,那么该属性的数据内容就会是其对应数据类型的默认值。例如,我们来看一下之前程序的最终执行结果,如果像下面这样修改代码:
class Person{ String name; int age; public void show(){ System.out.println("姓名:"+name+",年龄:"+age); } } public class Main{ public static void main(String[]args){ Person p=new Person(); pr.tell(); //这里不对属性进行赋值,直接调用方法 } }
再次执行代码后可以发现,字符串类型(String)作为引用数据类型,其默认值为Null,而Int作为基本数据类型,默认值为0。如此一来,我们便实现了类与对象的定义与使用。