Java学习笔记4--程序的进一步优化

  • 封装
    好处:
    A:提高了代码的复用性
    B:提高安全性。

    体现:
    将不需要对外提供的内容都隐藏起来。
    做法:把属性隐藏,提供公共方法对其访问。
    假如我们要给age赋值,但是赋予负数值居然也通过了。这是不满足实际需求的。
    我们应该对不满足需求的数据给与判断。
    而判断不能直接针对成员变量做,因为要判断,就必须写在方法中。
    所以,我们应该用一个方法给年龄赋值并判断。

    虽然我们已经通过一个方法做出了数据不正常的判断,但是我们还是可以通过对象直接访问成员变量。
    那么,为了让使用者使用方法来给成员变量赋值,就不能允许它们直接去访问成员变量。
    怎么办呢?
    为了解决这种情况,java就提供了一个修饰符关键字:private

  • private:

    私有的意思。
    
    可以修饰成员变量和成员方法。
    
    特点:
        被private修饰的内容,只能在本类中访问。
    
  • this关键字详解

    常说:
    见名知意。

    局部变量如果有一个变量和成员变量名称一致,那么优先使用的是局部变量。
    就近原则。

    这样的话,就造成了局部变量隐藏了成员变量。
    如何解决呢?
    为了解决这种情况,java就提供了一个代表本类对象的关键字:this

  • 构造方法

    构造方法:
    作用:给对象的数据进行初始化
    格式特点:
    A:方法名和类名相同。
    public void Student() {}
    B:没有返回值类型。
    修饰符 返回值类型 方法名(…) {…}
    C:没有返回值。
    没有用return带明确的值回来。
    return;

    构造方法注意事项
    A:如果你不提供构造方法,系统会给出默认无参构造方法
    B:如果你提供了构造方法,系统将不再提供默认无参构造方法
    这个时候怎么办呢?
    a:使用自己给的带参构造。
    b:要么自己再提供一个无参构造
    建议:建议永远自己给出无参构造方法。
    C:构造方法也是可以重载的。

    给成员变量赋值:
    A:通过setXxx()方法
    B:通过带参构造方法

  • 练习:创建汽车类并测试

public class Car {
    //1.写一个标准的汽车类并测试(私有化成员变量,对外提供setXxx()和getXxx()方法)

    private String brand;
    private int price;
    private String color;

    public void setBrand(String brand){            //对外提供setBrand()方法
        this.brand=brand;
    }
    public String getBrand(){                      //对外提供getBrand()方法
        return brand;
    }

    public void setPrice(int price){               //对外提供setPrice()方法
        this.price=price;
    }
    public int getPrice(){                         //对外提供getPrice()方法
        return price;
    }

    public void setColor(String color){            //对外提供setColor()方法
        this.color=color;
    }
    public String getColor(){                      //对外提供getColor()方法
        return color;
    }

    public Car(){}
    public Car(String brand,int price,String color){
        this.brand=brand;
        this.price=price;
        this.color=color;
    }

    public void lake(){
        System.out.println("可以去拉客");
    }
    public void show(){
        System.out.println(brand+"  "+price+"  "+color);
    }
}
public class CarTest {

    /**
     * 1.写一个标准的汽车类并测试(私有化成员变量,对外提供setXxx()和getXxx()方法)
     */
    public static void main(String[] args) {
        Car c = new Car();
        c.setBrand("坦克");
        c.setPrice(250);
        c.setColor("绿色");
        System.out.println(c.getBrand()+" "+c.getPrice()+" "+c.getColor());

        Car c2 = new Car("奔驰",800,"白色");
        c2.lake();
        c2.show();
        c.show();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值