2025-11-04 23:28:31 德国世界杯预选赛

Java第二阶段---09类和对象---第二节 成员变量和成员方法

第二节 成员变量和成员方法

1.成员变量

解释说明

在类中定义的变量就是成员变量。成员变量顾名思义是属于成员(具体的对象、具体的事物)的,成员变量有初始值。

成员变量的初始值:

引用数据类型的初始值都是null,整数都是0,浮点数都是0.0,boolean类型是false,char类型是'\u0000'

访问成员变量的语法

对象名.属性名;

示例

public class PersonTest {

public static void main(String[] args) {

//这里p成为对象名,

Person p = new Person();//构建了一个具体的人,只是这个人目前没有姓名,年性别和年龄

System.out.println(p.name + "\t" + p.sex + "\t" + p.age);

p.name = "刘德华";

p.sex = "男";

p.age = 53;

System.out.println(p.name + "\t" + p.sex + "\t" + p.age);

Person p1 = new Person();

p1.name = "张学友";

p1.sex = "男";

p1.age = 52;

System.out.println(p1.name + "\t" + p1.sex + "\t" + p1.age);

Person p2 = new Person();

p2.name = "黎明";

p2.sex = "男";

p2.age = 45;

System.out.println(p2.name + "\t" + p2.sex + "\t" + p2.age);

}

}

2.成员方法

解释说明

在类中定义的方法就是成员方法。成员方法顾名思义是属于成员(具体的对象、具体的事物)的。

调用成员方法的语法

//[]中内容可有可无

对象名.方法名([参数列表]);

示例

public class PersonTest {

public static void main(String[] args) {

//这里p成为对象名,

Person p = new Person();//构建了一个具体的人,只是这个人目前没有姓名,年性别和年龄

System.out.println(p.name + "\t" + p.sex + "\t" + p.age);

p.name = "刘德华";

p.sex = "男";

p.age = 53;

System.out.println(p.name + "\t" + p.sex + "\t" + p.age);

p.eat();

p.sleep();

p.work();

Person p1 = new Person();

p1.name = "张学友";

p1.sex = "男";

p1.age = 52;

System.out.println(p1.name + "\t" + p1.sex + "\t" + p1.age);

p1.eat();

p1.sleep();

p1.work();

Person p2 = new Person();

p2.name = "黎明";

p2.sex = "男";

p2.age = 45;

System.out.println(p2.name + "\t" + p2.sex + "\t" + p2.age);

p2.eat();

p2.sleep();

p2.work();

}

}

3.成员变量和局部变量

解释说明

局部变量就是在方法内部定义的变量。局部变量没有初始值,因此,局部变量在使用之前必须完成初始化操作。当局部变量与全局变量同

名时,局部变量优先级更高(因为局部变量的作用范围更小,就在局部变量所定义的方法内,因此局部变量在方法内的优先级要高于成员变量)。

示例

public class Car {

//车特征

public String name;//车名 可以直接拿来用 说明它有初始值

public String address;//生产地

public int rol;//转速

//车行为

public void run(){

System.out.println("运行");

}

public void pY() {

System.out.println("漂移");

}

public void show(){//展示

String name1;//局部变量,没有初始值

System.out.println(name1 + name +'\t'+ address +'\t'+ rol);//name1报错

}

}

4.this关键字

思考:

在方法中,如果局部变量和成员变量同名,此时又想使用成员变量,怎么办呢?

此时需要使用this关键字来解决

this关键字表示的是当前对象(使用new创建出来的对象-->属性(特征)和方法(行为)都是属于对象的)。

示例

public class Car {

//车特征(属性)

public String name;//车名 可以直接拿来用 说明它有初始值

public String address;//生产地

public int rol;//转速

//车行为(方法)

public void run(){

System.out.println("运行");

}

public void pY() {

System.out.println("漂移");

}

public void show(){//展示

String name="奔驰";

System.out.println( this.name +'\t'+ address +'\t'+ rol);//相当于address省略了this (本来是this.address)

}

}

public class CarTest {

public static void main(String[] args) {

Car c =new Car(); //this => c

c.name = "奥迪";

c.address = "中国";

c.rol = 240;

c.show();

Car c1 =new Car(); //this => c1

c1.name="大众";

c1.address="中国";

c1.rol=300;

c1.show();

}

}

this还可以用来调用成员的方法

/**

* 人类

*/

public class Person {

//特征

public String name;//姓名

public String sex;//性别

public int age;//年龄

//人行为

public void eat(){

System.out.println(age+"岁的"+sex +"性同志"+ name+"在吃饭");

work();//相当于 this.work() 因为方法是属于对象的 要调用只能是对象来调(对象是谁 在PersonTest中是p 所以相当于PersonTest中p.work 所以相当于this.work();

}

public void sleep(){

System.out.println(age+"岁的"+sex +"性同志"+ name+"在睡觉");

work();//相当于 this.work() 因为方法是属于对象的 要调用只能是对象来调 所以相当于this.work();

}

public void work(){

System.out.println(age+"岁的"+sex +"性同志"+ name+"在工作");

}

}

Person源码

/**

* 人类

*/

public class Person {

//特征

public String name;//姓名

public String sex;//性别

public int age;//年龄

//人行为

public void eat(){

System.out.println(age+"岁的"+sex +"性同志"+ name+"在吃饭");

work();//相当于 this.work() 因为方法是属于对象的 要调用只能是对象来调(对象是谁 在PersonTest中是p 所以相当于PersonTest中p.work 所以相当于this.work();

}

public void sleep(){

System.out.println(age+"岁的"+sex +"性同志"+ name+"在睡觉");

work();//相当于 this.work() 因为方法是属于对象的 要调用只能是对象来调 所以相当于this.work();

}

public void work(){

System.out.println(age+"岁的"+sex +"性同志"+ name+"在工作");

}

}

PersonTest源码

public class PersonTest {

public static void main(String[] args) {

//这里p成为对象名,

Person p = new Person();//构建了一个具体的人,只是这个人目前没有姓名,年性别和年龄

System.out.println(p.name + "\t" + p.sex + "\t" + p.age);

p.name = "刘德华";

p.sex = "男";

p.age = 53;

System.out.println(p.name + "\t" + p.sex + "\t" + p.age);

p.eat();

p.sleep();

p.work();

Person p1 = new Person();

p1.name = "张学友";

p1.sex = "男";

p1.age = 52;

System.out.println(p1.name + "\t" + p1.sex + "\t" + p1.age);

p1.eat();

p1.sleep();

p1.work();

Person p2 = new Person();

p2.name = "黎明";

p2.sex = "男";

p2.age = 45;

System.out.println(p2.name + "\t" + p2.sex + "\t" + p2.age);

p2.eat();

p2.sleep();

p2.work();

}

}

Car源码

public class Car {

//车特征(属性)

public String name;//车名 可以直接拿来用 说明它有初始值

public String address;//生产地

public int rol;//转速

//车行为(方法)

public void run(){

System.out.println("运行");

}

public void pY() {

System.out.println("漂移");

}

public void show(){//展示

String name="奔驰";

System.out.println( this.name +'\t'+ address +'\t'+ rol);//相当于address省略了this (本来是this.address)

}

}

CarTest源码

public class CarTest {

public static void main(String[] args) {

Car c =new Car(); //this => c

c.name = "奥迪";

c.address = "中国";

c.rol = 240;

c.show();

Car c1 =new Car(); //this => c1

c1.name="大众";

c1.address="中国";

c1.rol=300;

c1.show();

}

}

外汇交易怎么选?2025最新外汇交易商推荐与比较
香港重申零关税,自由港如何避险?
top