一,java中类的成员(一):属性
(修饰符 类型 属性名 = 初始化值)
在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
成员变量与局部变量的区别:
成员变量:
1. 成员变量定义在类中,在整个类中都可以被访问。
2.成员变量分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中。
3.成员变量有默认初始化值。
4.成员变量的权限修饰符可以根据需要,选择任意一个
局部变量:
1.局部变量只定义在局部范围内,如:方法内,代码块内等。
2.局部变量存在于栈内存中。
3.作用的范围结束,变量空间会自动释放。
4.局部变量没有默认初始化值,每次必须显式初始化。
5.局部变量声明时不指定权限修饰符
类的成员(二) 方法
修饰符 返回值类型 方法名 ( 参数列表) {
方法体语句;
}
修饰符:public private protected等(权限不同)
public class Animal{
private int age;
public int getAge(){}
public void setAge(int i ){
age = i;
}
}
二,对象的创建与使用
1.使用new 构造器(构造方法)创建一个新的对象
2.如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰
3.当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。byte short int 为0,long :0L,float:0.0F,double:0.0D,char:‘ ’空,boolean:false ,引用类型:null
要掌握对象的使用及内存分析。
public static void main(String[] args) {
Car c1 = new Car();
c1.info();
c1.setName("BMW");
c1.setWheel(4);
c1.info();
``
class Car {
String name;
int wheel;
public void info() {
System.out.println("name: " + name + " wheel: " + wheel);
}
public void show() {
System.out.println("It is a car");
}
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
public void setWheel(int w) {
wheel = w;
}
}
三,方法的重载:
在同一个类中允许一个以上的同名方法,只要它们的参数个数或者参数类型不同就行。
特点:与返回值的类型无关,就看参数列表并且参数列表必须不同,调用时根据方法参数列表的不同来区别。
public int getSum(int i, int j) {
return i + j;
}
public int getSum(int i, int j, int k) {
return i + j + k;
}
public double getSum(double d1, double d2) {
return d1 + d2;
}
public void getSum(double d1, double d2, double d3) {
System.out.println(d1 + d2 + d3);
}
}
四,方法的参数传递:
方法必须有其所在类或对象调用才有意义。
参数:
形参:方法声明时的参数
实参:方法调用时实际传给形参的参数值
Java里方法的参数传递方式只有一种:**值传递**。 即将实际参数值的副本传入方法内,而参数本身不受影响。
class DataSwap {
public int a;
public int b;
}
public static void swap(DataSwap ds) {
int tmp = ds.a;
ds.a = ds.b;
ds.b = tmp;
System.out.println(“swap方法里,a Field的值是” + ds.a + “;b Field的值是” + ds.b);
}
public static void main(String[] args) {
DataSwap ds = new DataSwap();
ds.a = 6;
ds.b = 9;
swap(ds);
System.out.println("交换结束后,a Field的值是" + ds.a + ";b Field的值是" + ds.b);
}
“`