类与对象
一、类与对象
1、对象
什么是对象?
现实生活中万物皆对象:灯泡质检员质检的每件灯泡;对于老师而言,在坐的各位学生;对于大家而言,自己的笔记本电脑。
在Java语言中,对象就是对现实生活中对象的模拟,是对现实生活中对象的描述(描述对象具有的基本属性和具体的功能),Java语言中的对象又称为实例。
举个例子
2、类
什么是类?
Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类。
3、如何定义类
public class Student {
//定义属性
String id; //学号
String name; //学生姓名
String grade; //学生年级
//定义读书方法
public void readBook() {
System.out.println(name + “正在读书……");
}
//定义写作业方法
public void doHomework() {
System.out.println(this.name + “正在写作业……");
}
}
4、对象的创建和使用
通过new关键字创建对象,又称实例化对象。
Student(类名) student(对象名) = new(关键字) Student();
使用”.”运算符访问对象的属性和方法。
student.属性 = 值;
student.方法名();
5、类与对象的关系
类是创建对象的模板,确定对象将会拥有的属性和方法。
类是对象的抽象化;对象是类的具体化。
类是一种数据类型,是对象的数据类型(不同于int等基本类型:类具有方法)
6、面向对象与面向过程
面向对象是一种编程思想,这种编程思想凸显对象在编程过程中的重要作用。什么是面向对象呢?简单的说就是让对象成为类与类之间的“通信”的桥梁,通过对象使类之间形成有机的整体。
面向对象编程语言以对象为中心,以消息为驱动,即程序=对象+消息;
面向过程编程语言则以过程为中心,以算法为驱动,即程序=算法+数据;
二者区别:
1、面向对象是从宏观方面思考问题,而面向过程可以说是从细节处思考问题。
2、在面向对象中,也存在面向过程。(对象内部也存在过程)
二、方法与重载
方法用于定义类的某种行为(或功能),其语法结构如下:
访问控制符 [修饰符] 返回值类型 方法名( [参数] ) {
//方法体
}
示例:
public void sayHello(){
System.out.println("Hello");
}
protected final void show(int x){
System.out.println(x);
}
private static int add(int x, int y){
return x+y;
}
1、访问控制符
2、修饰符
3、返回值类型
4、方法名定义规则
遵循标识符命名规则:首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写;方法名一般由一个动词或者动名词构成。
5、参数
方法可以有多个参数,各个参数之间用逗号(,)间隔。
int multiplication(int x, int y){
int result = x*y;
return result;
}
方法的参数在整个方法内有效。
方法参数前面的数据类型用于限制调用方法时所传具体数据的数据类型;
6、动态参数
public class Test {
public static void print(int... numbers) {
for (int number : numbers) {
System.out.println(number);
}
}
print(1, 2, 3, 4, 5);
}
}
1、动态参数实质为数组;
2、动态参数必须位于参数列表的最后;
3、一个方法只能有一个动态参数;
7、方法重载
同一个类中有多个方法名相同但参数列表不同的方法,这种现象称为方法重载(overload)。其中参数列表不同包括以下情形:1、参数的个数不同
2、参数的对应类型不同
注意:
1、参数列表不同并不包含参数名不同,也就是说如果方法名相同,方法中参数个数和类型相同,只是参数名不同,这样也不能称之为方法重载。
2、方法中其它构成部分不参与比较:访问控制符、修饰符、返回值类型。
三、代码块
Java中的代码块分两种:静态代码块与非静态代码块
主要区别:是否有static关键字修饰
(1)、静态代码块:用static关键字修饰,只在类加载的时候执行一次。
(2)、非静态代码块:无static关键字修饰,每创建一个对象执行一次。