封装的概念:
1.包装,例如我们将一些常用的功能进行抽取,定义成一个方法
2.面向对象特征中的封装: 隐藏,对类中的成员对外是否可见进行控制
使用权限修饰符控制成员对外的可见性
封装的好处:
封装案例1: 将类中属性私有化
package oop03.fengzhuang;
public class person {
//将属性设为私有制,在其他类中就不能随意访问
private String name;
private int age;
public person() {
}
//对外设置一个公共方法,在方法中控制语句
public void setname(String name){
if(name.length()>2&&name.length()<6){
this.name=name;
}
}
public String getname(){
return this.name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package oop03.fengzhuang;
import oop03.fengzhuang.person;
public class persontest {
public static void main(String[] args) {
person p1=new person();
p1.setname("aaa");
System.out.println(p1.getname());
}
}
封装案例2: 将某些方法私有化
package oop03.fengzhuang;
public class window {
static window window=new window();//window()为静态属性,在每次类加载时创建
private window(){}//将构造方法私有化,让别的类 用不了
public static window getwindow(){//提供一个获取window的方法
return window;
}
}
package oop03.fengzhuang;
public class testwindow {
public static void main(String[] args) {
window.getwindow();
System.out.println(window.getwindow());
}
总结:
java设计模式(模板,固定套路)
解决一类问题的固定方式.
单例模式: 单个实例,在系统中,想让某个类只能创建一个对象
成员变量与局部变量
位置:
成员变量:在类中定义 局部变量:在方法中定义或者方法的参数
权限修饰不同
成员变量:可以使用权限修饰符(static)
局部变量:不可以使用权限修饰符
初始化不同:
成员变量: 非静态--在创建对象后,由构造方法初始化
静态--类加载时初始化
局部变量: 声明后后,使用前必须自己进行初始化
生命周期不同:(什么时候生(创建),什么时候死(销毁))
成员变量: 生(创建) 销毁
非静态--创建对象 对象被垃圾回收
静态--类加载时 类被卸载
局部变量:
生 销毁
当方法被调用 当方法执行结束
在内存中的位置不同:
成员变量: 非静态--与对象在堆空间存储
静态--与类信息在方法区中存储
局部变量: 与方法在栈空间中存储