本文介绍Java中类和对象的概念。实话讲,刚开始接触这些概念,确实很头疼,不好理解。如果你理解了Java的类和对象,那么就基本上学好了Java一半知识。先来理解下什么是对象和什么是类的概念。
1. 什么是类和对象
每一个Java程序至少有一个类和一个方法。类是Java程序的组织单位,一般一个类下,写多个方法。简单来说,物以类聚,类就是分类,归纳的意思。在Java中处理import语句和package语句,其他的代码行都需要写在类里面。说到类,不得不提对象,Java是纯面向对象编程。什么是对象,在客观世界中的任何东西,特别复杂的问题,我们习惯把这些事物抽象成对象。世间万物皆是对象,这句话听说过吧,哈哈。对象有名字,对象有内部属性和行为描述,也叫方法。在Java程序中类是创建对象的模板,对象是类的实例。不说了,估计你会很绕,烧脑子。实在不行,强记住这句话:在Java程序中类是创建对象的模板,对象是类的实例。
2. 如何定义一个类
我们前面例子,其实都在一直定义类,public class MyClass {} 就是在定义一个名称叫MyClass的类。public表示修饰符,修饰符以后介绍,class是关键字,表示定义的是一个类,class后面跟着的就是类的名称。类里面可以定义多个方法,还有类本身的属性。
3. 看一个具体类的实现
在包lesson下新建两个Class文件,一个叫Student.java,一个叫MyClass.java
3.1 Student.java代码如下
package lessons;
public class Student {
int id;
String name;
int age;
// 这里只写了类属性,没有写类方法。
}
3.2 MyClass.java内容如下
package lessons;
public class MyClass {
public static void main(String[] args) {
Student Anthony = new Student(); // Anthony 是一个对象或者叫实例
Anthony.id = 1;
Anthony.name = "Anthony";
Anthony.age = 18;
System.out.println(Anthony.name + " is " + Anthony.age + " years old.");
}
}
运行结果:Anthony is 18 years old.
4. 参数设置和获取调优
仔细看MyClass.Java中的代码,你会发现,如果别人使用你的代码,很可能你Student里面的属性(id,name,age)被别人修改。为了防止别人修改你的值,我们采用set和get方法去修改上面代码。方法是这样:在Student这个类里面,鼠标选择类属性id,然后点击eclipse上传菜单栏的Source,下一级菜单选择Generate Getters and Setter...,你就会发现Student.java代码变化如下:
package lessons;
public class Student {
int id;
String name;
int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 这里只写了类属性,没有写类方法。
}
然后我们把MyClass.java的用set和get方法,具体代码如下:
package lessons;
public class MyClass {
public static void main(String[] args) {
Student Anthony = new Student(); // Anthony 是一个对象或者叫实例
Anthony.setId(1);
Anthony.setName("Anthony");
Anthony.setAge(18);
System.out.println(Anthony.getName() + " is " + Anthony.getAge() + " years old.");
}
}
再次提醒下:
Student Anthony = new Student(); // Anthony 是一个对象或者叫实例
以后会经常这样区去初始化一个对象或者实例,到时候自动化测试中页面对象类的实例化就是这样写,到时候千万不要说自己不能够理解这个代码。