第七章:类与对象基础
class object return programming null initial type oriented
1.类与对象概述
- 对象:用来描述客观事物的一个实体,由一组属性和方法构成。
- 类定义了对象将会拥有的特征(属性)和行为(方法)。
- 类的属性:对象所拥有的特征在类中表示时称为类的属性。
- 类的方法:对象执行的操作称为类的方法。
- 类和对象的关系是抽象于具体的关系,类是对象的类型,对象是类的实例。
- 对象的属性和方法被共同封装在类中,相辅相成,不可分割。
- 面向对象程序设计的优点:
与人类的思维习惯一致。
隐藏信息,提高了程序的可维护性和安全性。
提高了程序的可重用性 - 使用类的步骤:
定义类:使用关键字class。
创建类的对象:使用关键字new。
实用类的属性和方法:使用“ . ”操作符。
2.JAVA的类模板:
在Java中创建一个类,需要使用一个class,一个类名和一对大括号。
class是创建类的关键字。在class前有一个public,表示“公有”的意思。
语法:public class 类名{
//定义属性部分
//定义方法部分
}
类名创建规则:
- 不能使用Java中的关键字。
- 不能包含任何嵌入的空格或点号 “.” ,以及除下划线 “_” , “$”字符外的特殊字符。
- 不能以数字开头。
- 类名通常由多个单词组成,每个单词的首字母大写。
3.属性的定义:
数据类型 变量名;
4.方法的定义:
访问修饰符 返回值类型 方法名(){
//方法体
}
- 访问修饰符限制了访问该方法的范围。
- 返回值类型是方法执行后返回结果的类型,这个类型可以是基本类型,或者是引用类型,也可以没用返回值,此时必须使用void来描述。
- 方法名一般使用一个有意义的名字描述该方法的作用,其命名应符合标识符的命名规则。
public class School{
//定义属性部分:数据类型 变量名;
String schoolName;
int classNumber;
int labNumber;
//定义方法部分 访问修饰符<public> 返回值类型<void>
public void showSchool(){
System.out.println(schoolName+"学院\n"+"配置:\n"+classNumber+"间教室\n"+labNumber+"间机房\n");
}
}
5.创建和使用对象
创建对象:类名 对象名 = new 类名();
引用对象:对象名.属性名
引用方法:对象名.方法名
public class Example02 {
//定义属性部分(变量)
String schoolName;
int classNumber;
int labNumber;
//定义方法部分
public void showSchool(){
System.out.println(schoolName+"学院\n"+"配置:\n"+classNumber+"间教室\n"+labNumber+"间机房\n");
}
//调用属性和方法
public static void main(String[] args) {
Example02 object = new Example02(); //创建对象:类名 对象名 = new 类名();
System.out.println("********初始化变量之前*********");
object.showSchool(); //调用方法:对象名.方法名();
//初始化(赋值)属性(变量)
object.schoolName="许昌电气职业";
object.classNumber= 89 ;
object.labNumber= 89;
System.out.println("*******初始化变量之后*******");
object.showSchool(); //调用showSchool()方法:对象名.方法名();
}
}
运行结果如下
6.静态属性和方法
static可以用来修饰类的成员方法,类的成员变量,另外可以编写static代码块来优化程序性能。
static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问。
语法:
类名.静态变量名
类名.静态方法名(参数列表...)
public class Example03 {
//创建静态属性(变量)
static String name = "xiaoji";
//创建静态方法
public static void print(){
System.out.print("一起来学习Java吧"+"\n");
}
public static void main(String[] args){
Example03 object = new Example03(); //创建Example03类的对象
System.out.println("通过对象直接访问:"+object.name); //通过对象访问name属性 对象名.方法名();
System.out.println("通过类名直接访问:"+Example03.name); //通过类名访问name属性 类名.方法名();
object.print(); //通过对象访问print()方法 对象名.方法名();
Example03.print(); //通过类名访问print()方法 类名.方法名();
}
}
运行结果如下
静态方法只能访问静态成员,实例方法(普通方法)可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。