09.成员变量与局部变量、封装、构造方法、静态

一、成员变量与局部变量

在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关键字

静态方法是不能访问非静态的资源,因为静态方法优先于对象存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值