Java面向对象编程:属性(成员变量)和方法(函数)
一、属性
1.属性的创建
- 语法格式:
修饰符 类型 属性名 = 初值 ; - 说明:
1.修饰符private:该属性只能由该类的方法访问。
2.修饰符public:该属性可以被该类以外的方法访问。
3.类型:任何基本类型,如int、boolean或任何类。
举例:
public class Person{
private int age; //声明private变量 age
public String name = “Lila”; //声明public变量 name
}
2.成员变量(属性)与局部变量
- 成员变量:
1.成员变量定义在类中,在整个类中都可以被访问。
2.成员变量分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中。
3.成员变量有默认初始化值。
4.成员变量的权限修饰符可以根据需要,选择任意一个 - 局部变量:
1.局部变量只定义在局部范围内,如:方法内,代码块内等。
2.局部变量存在于栈内存中。
3.作用的范围结束,变量空间会自动释放。
4.局部变量没有默认初始化值,每次必须显式初始化。
5.局部变量声明时不指定权限修饰符
3.成员变量(属性)的初始化
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型。
二、方法
什么是方法(函数)?
方法是类或对象行为特征的抽象,也称为函数。
注意:Java里的方法不能独立存在,所有的方法必须定义在类里。
1.方法的创建
语法格式:
修饰符 返回值类型 方法名 ( 参数列表) {
方法体语句;
}
- 说明:
修饰符:public, private, protected等。
返回值类型:return语句传递返回值。没有返回值:void。
举例:
public class Person{
private int age;
public int getAge() { return age; } //声明方法getAge
public void setAge(int i) { //声明方法setAge
age = i; //将参数i的值赋给类的成员变量age
}
}
2.方法的调用过程
- 注意:
1.方法只有被调用才会被执行
2.定义方法时,方法的结果应该返回给调用者,交由调用者处理。
3.方法中只能调用方法,不可以在方法内部定义方法。
4.Java里方法的参数传递方式只有一种:值传(区别于C++)
3.方法的重载
重载的概念
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
重载的特点:
与返回值类型无关,只看参数列,且参数列表必须不同。(参数个数、参数类型、列表顺序)。调用时,根据方法参数列表的不同来区别。
举例
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和(参数个数不同)
int add(int x,int y,int z){return x+y+z;}
//返回两个数的和(参数类型不同)
double add(double x,int y){return x+y;}
//返回两个数的和(列表顺序不同)注意:是看参数类型的顺序,如果是同类型换位置是没有意义的
double add(int x,double y){return x+y;}
4.方法的特殊调用:匿名对象
什么是匿名对象?
我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象。
举例
new Person().shout();
使用情况
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
我们经常将匿名对象作为实参传递给一个方法调用。