类和对象这个玩意真是老生常谈了,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):构造方法的名字一定要和类名相同
以上大概就是类和对象的创建。
有好的建议,请在下方输入你的评论。