Java学习笔记4--程序的进一步优化
2017-04-06 21:03
246 查看
封装
好处:
A:提高了代码的复用性
B:提高安全性。
体现:
将不需要对外提供的内容都隐藏起来。
做法:把属性隐藏,提供公共方法对其访问。
假如我们要给age赋值,但是赋予负数值居然也通过了。这是不满足实际需求的。
我们应该对不满足需求的数据给与判断。
而判断不能直接针对成员变量做,因为要判断,就必须写在方法中。
所以,我们应该用一个方法给年龄赋值并判断。
虽然我们已经通过一个方法做出了数据不正常的判断,但是我们还是可以通过对象直接访问成员变量。
那么,为了让使用者使用方法来给成员变量赋值,就不能允许它们直接去访问成员变量。
怎么办呢?
为了解决这种情况,java就提供了一个修饰符关键字:private
private:
this关键字详解
常说:
见名知意。
局部变量如果有一个变量和成员变量名称一致,那么优先使用的是局部变量。
就近原则。
这样的话,就造成了局部变量隐藏了成员变量。
如何解决呢?
为了解决这种情况,java就提供了一个代表本类对象的关键字:this
构造方法
构造方法:
作用:给对象的数据进行初始化
格式特点:
A:方法名和类名相同。
public void Student() {}
B:没有返回值类型。
修饰符 返回值类型 方法名(…) {…}
C:没有返回值。
没有用return带明确的值回来。
return;
构造方法注意事项
A:如果你不提供构造方法,系统会给出默认无参构造方法
B:如果你提供了构造方法,系统将不再提供默认无参构造方法
这个时候怎么办呢?
a:使用自己给的带参构造。
b:要么自己再提供一个无参构造
建议:建议永远自己给出无参构造方法。
C:构造方法也是可以重载的。
给成员变量赋值:
A:通过setXxx()方法
B:通过带参构造方法
练习:创建汽车类并测试
好处:
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(); } }
相关文章推荐
- JAVA程序性能优化-让你的java程序更快、更稳定学习笔记一性能优化一般步骤
- java程序性能优化学习笔记day1
- JAVA学习笔记之三Applet程序
- java学习笔记(二十二)继承的进一步研究
- 《编写高质量代码改善Java程序的151个建议》学习笔记 第6章 枚举和注解
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<SQL_Server_视图_函数_存储过程_触发器等>(二十三)
- ICE学习笔记一----运行官方的java版demo程序
- CUDA学习笔记之程序优化
- [每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)
- JAVA学习笔记之三(控制程序流程)
- Java学习笔记(一)——程序基础
- java学习笔记(三)——发布GUI程序
- CUDA学习笔记之程序优化
- Java学习笔记——Java程序运行超时后退出或进行其他操作的实现
- Think in java学习笔记-第3章 控制程序流程1
- Java学习笔记——伪代码及程序控制
- (JAVA SE 学习笔记)Java.SE.第001讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行
- java学习笔记---第一个applet程序以及一个小问题的解决
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<SQL_Server>(二十一)
- ICE学习笔记一----运行官方的java版demo程序