JAVA中一个很重要的思想就是面向对象思想,即所谓的OOP(Object Oriented Programming)。在之后的编程中,面向对象的编程思想是贯彻始终的。面向对象是解决问题的思考模式,它是由基于过程演化而来的。比如,在日常生活中,我们的电脑坏了,我们不会修,但是我们可以找到一个会修电脑的人来帮助我们修理电脑,这个人就是所谓的对象。我们在编程中需要做的事情就是找到可以实现某个功能的对象来帮助我们完成某个特定的功能。而类就是JAVA语言中描述现实生活的事物,对象就是现实生活中确实存在的那个事物。在上面修电脑的例子中,电脑坏了,我们需要找到会修电脑的人,这会修电脑的人代表的是一类人,这里称之为类,而具体实施修电脑的可能是张三,李四等某一个人,而这某一个人就被称之为对象。
知道了这个概念以后,我们接下来学习JAVA的第一大特性,封装。封装就是隐藏实现的细节,只对外提供公共的访问方法。好比说,我们的电脑主板上的显示器,CPU,内存,显卡,电源等装备我们是看不到的,因为他们都被封装在一块主板上了,而我们只需要按一下电脑为我们提供的电源按钮就可以启动电脑为我们工作,这样大大的提高了设备的安全性。
封装中经常被使用的修饰符是private。被private修饰的成员变量,只能在本类中访问,权限,private是java语言中最低权限。私有,是封装一种体现形式。访问类中被private修饰的成员变量的访问函数,赋值函数定义为set,取值函数定义为get,定义在类中的成员变量,一般都会加上private。
This关键字的使用。this代表的是本类的对象引用,this语句,this可以调用其他构造函数,this()只能调用构造函数。
Static静态:
被static修饰的成员变量,被所有的对象共享
被static修饰的成员变量,随着类的加载而加载
非静态成员变量,跟随对象的存储
优选于对象存在于内存
静态的生命是最长,比对象生命要长
被static修饰的成员变量,类变量,可以被类名直接调用,对象也可以调用静态成员变量
被static修饰的成员函数,也可以被对象调用,还可以被类名调用
被静态修饰的成员变量,成员函数,属于类的,不属于对象
静态函数中,不能引用非静态变量。静态函数中,不可以写this,super
那么什么时候使用静态呢?
1 .当类中的成员变量,被所有对象共享的时候,推荐定义成静态变量
注意,一般情况,这个变量值,是不会改变的
在类中,不会变化的成员变量,定义成静态,变量名都大写
2.静态函数,一般情况下,都不用静态函数
什么时候用呢,当我函数,从来没有访问过类中的成员变量的时候
建议将函数,定义为静态,不需要对象了
class Demo
{
String name ="张三";
static int AGE = 30;
public static void show()
{
static int AGE = 40;
sop(name+AGE);
}
}
main(){
Demo d =new Demo();
d.show();
}
封装的应用--单例设计模式:
单例设计模式的出现是为了保证对象在内存中的唯一性。建立对象的时候,绝不可以去 new创建对象。在设计单例模式的时候需要考虑一下:
虽然构造函数被private外部的类是不能访问的,但是内部是不是可以访问
在我自己的类中,建立自己的对象
通过一个公共的访问函数,将这个对象进行返回
1.饿汗式
2.懒汉式
存在安全隐患,在实际开发中不推荐使用