Java 与面向对象
对象是 Java 程序的核心,在 Java 程序中“万事万物皆对象”。
对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。类是用来创建同一类型的“模板”,在一个类中定义了该类对象所具有的成员变量以及方法
Java 语言中除基本类型之外的变量类型都称为引用类型
Java 中的对象是通过引用对其操作的。
例如:
Dog dog;
dog = new Dog();
对象是 new 出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值 (除了静态变量)而方法只有一份,执行的时候才占用内存。
对象的创建和使用
必须使用 new 关键字创建对象,new 做三件事:
①会在堆中为相应类型分配空间
②会调用相应的构造方法来初始化对象
③将在堆中开辟的空间的地址返回回来
使用对象(引用).成员变量来引用对象的成员变量。
使用对象(引用).方法(参数列表)来调用对象的方法。
同一类的每个对象有不同的成员变量存储空间。
同一类的每个对象共享该类的方法。
五
成员变量:
在Java中对象的属性(静态部分)也称为成员变量。
成员变量可以使用 Java 语言中任何一种数据类型(包括基本类型和引用类型)
定义成员变量时可以对其初始化,如果不对其初始化,Java 使用默认的值对其初始化。
public class Perosn {
//成员变量
int id;
int age=20;
方法定义
int getAge(){
return age;
}
void setAge(int i){
age = i;
}
}
成员方法:
在Java语言中使用成员方法对应于类对象的行为。一个成员方法可以有参数,这个参数可以是对象,也可以是基本数据类型的变量,同时成员方法有返回值和不返回任何值的选择。在成员方法中可以调用其他成员方法和类成员变量。
方法需要返回值,可以在方法体中使用return关键字,使用这个关键字后,方法的执行将被终止。
方法无返回值,可以使用void关键字表示。
成员方法的返回值可以是计算结果,也可以是其他想要的数值和对象,返回值类型与方法返回的值类型一致。
定义成员方法的语法格式:
权限修饰符 返回值类型 方法名{参数类型 参数名}{
...//方法体
return 返回值;
}
权限修饰符
Java权限修饰符主要包括private、public和protected,这些修饰符控制着对象和类的成员变量以及成员方法的访问。
局部变量
如果在一个成员方法内定义一个变量,那么就这个变量被称为局部变量。
局部变量是在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译出错。
在项目中创建一个类文件,在该类中定义getName()方法并进行调用 :
//定义一个getName()方法
public String getName(){
//局部变量
int id=0;
//调用类中其他方法
setName("Java");
//设置方法返回值
return id+this.name;
}
局部变量的有效范围:
可以将局部变量的有效范围称为变量的**作用域**,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
this关键字
在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式地用于对象的成员变量和方法。
在项目中创建一个类文件,该类中定义了setName(),并将方法的参数值赋予类中的成员变量。
//定义一个setName方法
private void setName(String name){
//将参数值赋予类中的成员变量
this.name=name;
}
如上述代码中,this.name指的是类中name的成员变量,而this.name=name语句中的第二个name则指的是形参name。实质上setName()方法实现的功能就是将形参的name的值赋予成员变量name.
其实,this除了可以调用成员变量或成员方法之外,还可以作为方法的返回值。
public Book getBook(){
//返回Book类引用
return this;
}
类的构造方法
构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。
构造方法的特点:
构造方法没有返回值。
构造方法的名称要与本类一致。
构造方法语法格式:
//public 构造方法修饰词 book构造方法的名称
public book(){
...//构造方法体
}
在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。