一、成员变量与局部变量
在4-12就有说到局部变量,对于局部变量的一些认知
http://t.csdn.cn/lttF5http://t.csdn.cn/lttF5成员变量与局部变量有许多不同
1.定义位置不同
成员变量定义在类内方法之外,局部变量定义在方法之类也只作用于方法之中
2.生命周期
成员变量随着对象加载而加载,随着对象销毁而销毁
局部变量随着方法加载而加载,随着方法销毁而销毁
3.存储位置
成员变量存储在堆内存中,局部变量存储在栈内存之中
4.默认值
局部变量没有默认值
成员变量是有默认值的
整数 | 0 |
小数 | 0.0 |
布尔类型 | false |
字符 | '\u0000'(空格) |
字符串 | null |
二、封装
1.关键字:private
2.原则:隐藏内部的细节,提供对外访问的方法
3.private修饰类、方法、成员变量
4.被private修饰后只能在这个类中直接访问,对外访问提供set和get方法
public class Test5 {
public static void main(String[] args) {
Car tuolaji=new Car(3,"炫彩黑",100,50);
tuolaji.addSpeed(10);
tuolaji.subSpeed(40);
tuolaji.stop();
}
}
class Car{
private int numWl;
private String color;
private double wei;
private int speed;
public Car() {
}
public Car(int numWl, String color, double wei,int speed) {
this.numWl = numWl;
this.color = color;
this.wei = wei;
this.speed=speed;
}
public int addSpeed(int speed){
this.speed+=speed;
System.out.println("速度增加为"+this.speed);
return speed;
}
public int subSpeed(int speed) {
this.speed-=speed;
System.out.println("速度降低为"+this.speed);
return speed;
}
public void stop() {
this.speed=0;
System.out.println("停车XXX当前速度为"+this.speed);
}
}
三、构造方法
1.构造方法:也叫做构造函数、构造器。
用来实例化对象
在实例化对象时也可以对成员变量赋值
在实例化对象时一定会执行构造方法(如果没有写构造方法,系统提供一个无参构造,默认执行无参构造)
2.分类分为有参和无参构造
3.特点
构造方法名称就是类名
构造方法没有返回值 ,可以用return;用来结束构造方法
构造方法不能自身进行调用,由jvm来进行调用
4.构造方法和set方法
都可以对成员变量进行赋值
构造方法只能在实例化对象时对成员变量赋一次值
set方法可以给成员变量多次赋值
public class Test4 {
public static void main(String[] args) {
Person xiaoming=new Person("小明",18);
xiaoming.display();
xiaoming.setName("小红");
xiaoming.setAge(20);
System.out.println("姓名:"+xiaoming.getName() +"\t年龄:"+ xiaoming.getAge());
}
}
class Person{
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void display(){
System.out.println("姓名:"+name+"\t年龄:"+age);
}
}
四、静态
1.关键字:static
2.修饰的成员:类、方法、变量
3.静态作用:
多个对象有相同的属性值的时候,使用静态,只需要在方法区中开辟一块空间,静态资源就可以是实现对象共享
4.静态变量特点:
a.静态变量优于对象先存在
b.静态变量是存在方法区中的静态区间中
c.静态变量是类变量随着类的加载而加载
5.静态方法
静态方法不能访问非静态的变量、非静态的方法、this关键字
静态方法是不能访问非静态的资源,因为静态方法优先于对象存在