类与对象
- 类 = 属性(成员变量) + 方法
- 通过new关键字创建对象
- 使用类中的属性和方法:对象.属性名 对象.方法名()
类与对象的关系
类是对象的模板(template),对象是类的实例(instance)。
在类中定义的变量和方法都称为类的成员。所以变量又称为成员变量,方法又称为成员方法
类的成员变量又称为类的属性。
属性属于类的某个具体对象。类的每个实例(即,类的每个对象)都包含这些变量的副本,因此在类中定义的变量又被称为实例变量。
注意:
属性属于类的具体对象,不同对象的属性值通常是不同的。
虽然方法也是通过对象调用的,但是各对象共享相同的方法。
为引用变量赋值
//Box b1 = new Box(); //创建对象,让b1指向(引用)所创建的对象
对象引用与对象的关系:
(1)对象引用,有时也称为对象引用变量,或称为引用变量。
(2)对象引用与对象在物理上是两个不同的东西。
(3)我们通常说对象引用引用(有时也称为指向)类的对象。
(4)对象只能通过对象的引用调用
(5)对象的相等性比较 == 比较的是两个引用是否指向一个内存地址
基本变量与引用变量的区别:基本类型的变量位于栈内存中,引用变量所所引用的变量位于堆内存中。
方法
方法可以看做是独立的功能模块,供调用模块调用,功能模块要有输入、输出,对于方法而言输入就是方法的参数,输出就是方法的返回值。调用者通过参数将需要输入的数据传递给方法,方法通过返回值将输出返回给调用者。
方法的定义
1、方法定义包括:访问修饰符、返回类型、方法名、形参、代码块
2、方法必须有返回类型(构造方法除外),可以省略访问修饰符
3、可以有参数,也可以没有参数
方法的调用
方法调用中发生的数据传送是单向的。(实参à形参)
在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
参数传递:
值传递:Swap(int a, int b)方法
引用传递(对象作为参数,本质上是引用变量作为参数)
return语句用于明确地从一个方法返回,如果return之后还有代码也不会执行。
方法的返回类型为void,可以使用return跳出函数,但是不能使用return返回数据。
对象也可以被返回。
方法调用:
因为封装,不能直接访问其他对象的成员变量,通常是调用其他对象的方法。方法调用有两种情况:
调用相同类中的方法:可以直接调用。(本质上是使用this关键字调用)
调用其他类中的方法:对象.方法名
构造方法
构造方法的作用:开辟内存空间、创建实例、初始化属性值。
构造方法的特点:
(1)方法名与类名相同
(2)不能声明返回类型
(3)不能使用return语句返回值
(4)通常为public
没有明确提供构造方法时系统会提供一个默认的构造方法(无参)提供了构造方法后系统不再提供无参数的默认构造方法(需要手动创建)。