java中的对象
Java语言中的对象是对现实世界中对象的模拟,现实中的对象存在于现实生活中,Java语言中的对象存在于计算机内存中。
对象的特点是属性和方法。即要知道每一个对象的基本信息和这个对象他自己能干什么。
如何定义类
定义一个类的步骤:
1、定义类名;
2、定义类的属性;
3、定义类的方法。
//定义属性
public class 类名{
String id; //学号
String name; //学生姓名
String grade; //学生年级
//定义读书方法
public void readBook() {
System.out.println(name + “正在读书……");
}
//定义写作业方法
public void doHomework() {
System.out.println(this.name + “正在写作业……");
}
}
对象的创建和使用
通过new关键字创建对象。创建对象又称实例化对象。
Student student = new Student();
使用”.”运算符访问对象的属性和方法。
student.属性 = 值;
student.方法名();
public class TestStudent {
public static void main(String[] args) {
Student student = new Student();//创建李四学生类对象
student.id = "wl2014001";
student.name = "李四";
student.grade = "三年级";
student.readBook();//调用学生读书方法
student.doHomework();//调用学生写作业的方法
}
}
类和对象的关系
类是创建对象的模板,确定对象将会拥有的属性和方法。
类是对象的抽象化;对象是类的具体化。
类是一种数据类型,是对象的数据类型(不同于int等基本类型:类具有方法)
面向对象
面向对象是一种编程思想,这种编程思想凸显对象在编程过程中的重要作用。什么是面向对象呢?简单的说就是让对象成为类与类之间的“通信”的桥梁,通过对象使类之间形成有机的整体。
面向对象编程语言以对象为中心,以消息为驱动,即程序=对象+消息;
面向过程
面向过程编程语言则以过程为中心,以算法为驱动,即程序=算法+数据;
区别:
1、面向对象是从宏观方面思考问题,而面向过程可以说是从细节处思考问题。
2、在面向对象中,也存在面向过程。
方法重载
同一个类中有多个方法名相同但参数列表不同的方法,这种现象称为方法重载(overload)。其中参数列表不同包括以下情形:
1、参数的个数不同
2、参数的对应类型不同
注意:
1、参数列表不同并不包含参数名不同,也就是说如果方法名相同,方法中参数个数和类型相同,只是参数名不同,这样也不能称之为方法重载。
2、方法中其它构成部分不参与比较:访问控制符、修饰符、返回值类型。
public class Teacher {
public static void print(int age, String name) {
System.out.println(age + "," + name);
}
public static void print(String name, int age) {
System.out.println(name + "," + age);
}
public static void main(String[] args) {
print(33, “王小红”);// 依次传入int类型和String类型数据,所以调用第一个方法
print("王小红", 33);//依次传入String类型和int类型数据,所以调用第二个方法
}
}
全局变量和局部变量
全局变量
直接在类中声明的变量叫成员变量(又称全局变量)
如果未对成员变量设置初始值,则系统会根据成员变量的类型自动分配初始值:int分配初始值0、boolean分配初始值false,而自定义类型则分配初始值null。
局部变量
如果局部变量的名字与全局变量的名字相同,则在局部变量的作用范围内全局变量被隐藏,即这个全局变量在同名局部变量所在方法内暂时失效。
如果在局部变量的作用域范围内访问该成员变量,则必须使用关键字this来引用成员变量。
局部变量在使用以前必须显式初始化或赋值,局部变量没有默认值。