类和对象这个玩意真是老生常谈了,PHP是可对象可过程的,但是在java中,万物皆对象。
我们来复习一下类的定义:
类是实物的属性(外在特征)和行为(具备的功能)的集合
对象是类的具体表现(如果拿人“类”作为例子的话,那对象就是类中具体的你,我,她)
一:创建一个类
1:格式
Class 类名
{
类的属性;
类的行为;
}
2:步骤
(1):明确你创建的类的功能
(2):该类实物中有哪些属性(实物的外在特征)
(3):该类实物中有哪些行为(实物所具备的功能)
3:举个例子
我们来定义一个人的类
class person { // 年龄 public String age; // 体重 public String weight; /** * 跑方法 */ public void run() { System.out.println("跑"); } /** * 思考方法 */ public void think() { System.out.println("思考"); } }
二:调用类
public class T05 { public static void main(String[] args) { // 定义一个人的对象 person xh = new person(); // 给他的属性赋值 xh.age = 25; xh.weight = 180; System.out.println("xh年龄:"+xh.age+" 体重:"+xh.weight); // 调用类的方法 xh.think(); } }
以上大概就是类的调用方法,比较简单,现将类实例化一个对象,再直接.就可以了。
三:成员变量和局部变量
1:成员变量
定义再看类中,方法外的变量就是成员变量。
class person { // 年龄 public int age; // 体重 public int weight; }
上边的所有变量均是成员变量。
2:局部变量
定义在方法中,或者方法声明上的变量就是局部变量
public static void main(String[] args) { // two 是局部变量 int two = sumNunber(5,2); System.out.println(two); int three = sumNunber(5,2,6); System.out.println(three); } /** * 加和(三个参数) * @param i 局部变量 * @param j局部变量 * @return */ public static int sumNunber(int i,int j,int x) { return i + j + x; }
上边代码中的变量都是局部变量
3:成员变量和局部变量的区别?
1.定义位置不同
局部变量:定义在方法中或者方法的声明上
成员变量:定义在类中方法外
2.内存位置不同
局部变量:存储在栈中的方法中
成员变量:存储在堆中的对象中
3.初始值不同
局部变量:没有默认初始值,想要使用一定要先赋值在使用
成员变量:有默认初始化值,如果不赋值也可以使用
String类型的变量默认初始值nul1
int类型的变量默认初始值0
boolean类型的变量默认初始值false
double类型的变量默认初始值0.0
char类型的变量默认初始值‘\u0000'
4.生命周期不同
局部变量:因为是存储在方法中,所以是随着方法的存在而存在,随着方法的消失而消失
成员变量:因为是存储在对象中,所以是随着对象的存在而存在,随着对象的消失而消失
5.作用域范围不同
局部变量:出了方法就用不了了
成员变量:在本类中的方法中都可以使用
四:匿名对象
1:定义:没有名字的对象就是匿名对象
2:使用格式:
New 类名();
3:匿名对象如何使用属性和方法呢?
New 类名().属性名
New 类名().方法名()
4:匿名对象的特点
一次性(只能使用一次,因此匿名对象一般都是调用对象的方法)
5:匿名对象是可以作为实际参数传递的
五:构造方法
1:定义:方法名和类名相同,和普通方法的格式不一样的特殊方法。
2:构造方法作用:
(1):用来创建对象
(2):用来对象的属性初始化
举个小例子:
public class T05 { public static void main(String[] args) { // 定义一个人的对象 person xh = new person(10,100); // 给他的属性赋值 xh.age = 25; xh.weight = 180; System.out.println("xh年龄:"+xh.age+" 体重:"+xh.weight); // 调用类的方法 xh.think(); } } class person { // 年龄 public int age; // 体重 public int weight; /** * 构造方法 */ public person(int a,int w) { age = a; weight = w; } /** * 跑方法 */ public void run() { System.out.println("跑"); } /** * 思考方法 */ public void think() { System.out.println("思考"); } }
通过上方的代码我们可以看到,person类的构造方法中有两个参数,那我们实例化对象的时候就需要给其传递两个参数,否则就会报错。
3:构造方法的特点
(1):构造方法没有返回值类型
(2):构造方法由返回值
(3):构造方法有return关键字
(4):构造方法的名字一定要和类名相同
以上大概就是类和对象的创建。
有好的建议,请在下方输入你的评论。