成员变量:
是在类中,且步子方法中的变量,叫做成员变量,有初始化值。
局部变量:
在方法中的变量,叫做局部变量,它没有默认值,必须先定义,赋值,才能用。
成员变量与局部变量的不同点:
1、类中的位置不一样:成员变量在类中,方法外,而局部变量在方法内。
2、内存位置不同:成员变量在堆内存,局部变量在栈内存。
3、生命周期不同:创建对象时存在,对象消失则消失,局部变量跟方法一起,随着方法被调用而存在,调用完毕消失。
4、初始化值不同:成员变量有初始化值,局部变量则没有。
private:私有变量
private:将属性和方法用private封装后表示,被封装的属性与方法只能在本类中使用,类外部不可见。 此时要想访问被封装的属性,必须提供getter与setter方法
代码:
package GolbalText2;
// 学生类
public class Student {
// 成员变量
String name;
private int age;
// 提供set方法,当括号里的变量名与成员变量名同名时:要用this.变量名:表示成员变量
// 不加this表示局部变量,防止遮挡成员变量
public void setAge(int age) {
this.age = age;
}
// 提供get方法,返回值时什么类型,就用什么类型
public int getAge() {
return age;
}
public void show(){
System.out.println(name+age);
}
}
用private定义的成员变量不可以直接访问,我们可以通过get来访问
代码:
package GolbalText2;
// 测试类
public class StudentDemo {
public static void main(String[] args) {
// 创建对象
Student sd = new Student();
sd.name="张三";
// 给带有封装属性的成员变量赋值
sd.setAge(16); //直接带入向管的值
// 显示类中的方法,通过show方法显示
sd.show();
// 第二种显示,这是直接显示
System.out.println(sd.name+sd.getAge());
}
}
构造方法:初始化对象。
java的构造方法在创建时被调用。Java有默认的构造方法,但是当想用别的构造方法时:需要重新定义构造方法。
定义构造方法:
1、方法名必须与类型相同
2、可以没有参数,或多个参数
3、返回值类型就是本身的类型
4、跟创建对象中的new连用
package GolbalText3; // 学生类 public class Student { String name; int age; public Student(){ System.out.println("这是无参数的构造方法"); } public void show(){ System.out.println(name+","+age); } } ------------------------------------------------------------------------------------package GolbalText3; // 测试类 public class StudentDemo { public static void main(String[] args) { // 创建对象 Student ad = new Student(); ad.show(); } }
可以看到 创建对象,其实也是在调用构造方法
构造方法传值的情况:
package GolbalText3;
import GolbalText2.Student;
/*
* 学生类
* */
public class Student1 {
private String name;
private int age;
// 无参构造方法,如果没有写,使用系统默认的构造方法
public Student1(){
System.out.println("这是无参构造方法");
}
// 一个参数的构造方法:
public Student1(String name){
this.name = name;
}
// 这是一个参数的构造方法
public Student1(int age){
this.age=age;
}
// 这是两个的构造方法
public Student1(String name,int age){
this.name=name;
this.age=age;
}
public void show(){
System.out.println(name+","+age);
}
}
package GolbalText3;
/*
* 测试类
* */
import GolbalText2.Student;
public class StudentDemo1 {
public static void main(String[] args) {
// 创建对象,
Student1 sd = new Student1(); //这个时候,学生类里的构造方法就已经开始执行了
sd.show();
// 传一个参数(名字)
Student1 sd1 = new Student1("张三丰");
sd1.show();
// 传一个参数(年龄)
Student1 sd2 = new Student1(16);
sd2.show();
// 传两个参数(名字,年龄)
Student1 sd3 = new Student1("周星驰",16);
sd3.show();
}
}
到这里就结束了,若有错误请指正。