黑马程序员_Java基础面向对象_01

----------Android、Java开发期待与您交流----------

面向对象的特征:封装、继承、多态

面向对象是基于面向过程而言
面向对象和面向过程都是一种思想

面向过程强调功能行为,展现细节;面向对象是将功能封装进对象,隐藏功能具体细节,强调具备了功    能的对象。


类与对象的关系:
        对象:指现实生活中实实在在存在的个体

        类:指对对象的统一描述

成员变量和局部变量:
        成员变量:作用于整个类中,因为对象的存在而存在,在堆内存中
        局部变量:作用于函数或语句中,存在于栈内存中
匿名对象:
        1.对对象的方法只调用一次时可以使用匿名对象,简化写法
        2.如果一个对象进行多个成员方法调用时,必须给这个对象起个名字;
        3.匿名对象可以当作参数传递

一.封装
         封装:封装是一种把代码和代码所操作的数据捆绑在一起,使两者不受外界干扰和误用的机制。它隐藏了对象的属性和实现细节。仅对外提供公共的访问方式。
         封装的好处:
                1.将变化隔离
                2.提高代码重用性
                3.提高安全性
         封装原则:
               1.将不需要对外提供的内容隐藏起来
               2.把属性都隐藏,提供公共方法对其访问
成员方法和构造方法的区别:
        功用:成员方法是类或类对象某种行为的体现;构造方法用于对类对象初始化
        格式:修饰符、返回值类型、命名
                  1.修饰符:构造器可以有任何访问修饰符或者没有修饰符,但不能被abstract、finally、native、static或者synchronized修饰
                  2.返回值:构造方无返回值类型,也不需要void

                  3.命名:成员方法名称遵循标识符规则,构造函数名称则必须和类名相同

                  4.每个类可以有一个以上的构造器
                  5.构造器可以的参数个数不受限制
                  6.构造器总是伴随new操作一起调用

构造代码块:
        该类事物具备的一些特性或行为可以放在构造代码块中,当对象初始化时自动被执行
this关键字的用法:
        1.区分局部变量和成员变量同名情况
        2.代表本类的对象,this代表所在函数所引用的对象,谁调用this所在函数,this就代表谁
        3.定义函数功能时,该函数内部需要用到调用函数的对象时,这时this代表这个对象
static关键字:
        作用:用于修饰成员(成员变量或成员函数)
        被修饰后的成员具备以下特点:
               1.伴随类的存在而存在,消失而消失
               2.优先于对象存在
               3.被所有对象共享
               4.可以直接被类名调用(类名.静态成员)
       注意事项:
               1.静态方法只能访问静态成员,非静态方法既可以访问非静态成员还可以访问静态成员
               2.静态成员优先于对象存在,所以静态方法中不可以写this、super关键字
               3.主函数是静态的
成员变量和类变量的区别:
       1.存放的位置
                 1.1类变量存在于方法区中
                 1.2成员变量随着对象的建立存在于堆内存中
      2.生命周期
                 2.1类变量生命周期长,随着类的消失而消失
                 2.2成员变量生命周期短,随着对象的消失而消失
静态的优缺点:
       优点:对象的共享数据进行单独空间的存储,节省空间,没有必要每个对象中存储一份
       缺点:声生命周期过长;访问出现局限性(静态虽好,只能访问静态)

静态代码块:
       1.随着类的加载而执行,只执行一次,用于给类初始化。
       2.静态代码块里面的变量都是局部变量,只在本块内有效
       3.静态代码块只能定义在类里,它独立于任何方法,不能定义在方法里面
        4.一个类中可以定义多个静态代码块,执行的顺序分居定义的顺序进行
    
代码执行顺序:
       1.静态代码块;2. 构造代码块;3.构造函数
主函数:是一个特殊的函数,作为程序的入口,可以被jvm调用
主函数的定义:
        public:代表该函数的访问权限是最大的
        static:代表主函数随着类的加载就已经存在了
        void:主函数没有具体的返回值类型
        main:不是关键字,但是一个特殊的单词,可以被jvm识别


单例模式:
       单例模式:一个类只有一个实例。
       要点:
               1.某个类只能有一个实例;即单例模式的类只提供私有的构造函数
               2.它必须自行创建这个实例;即类定义中含有一个类的静态私有对象
               3.必须自行向整个系统提供这个实例;提供一个静态的公共函数用于创建或获取它本身的静态私有对象
    优点:
               1.单利模式会阻止其它对象实例化自己单例对象的副本,从而确保所有对象访问唯一实例
              2.因为类控制了实例化过程,所以类可以灵活更改实例化过程
    缺点:
             1.每次对象请求引用时都要检查是否存在类的实例

             2.使用单例对象时,开发人员必须记住通过静态方法调用获得实例对象,因为有可以无法访问源代码,可能会误导开发人员此类无法被实例化

public class Singleton {

}
//懒汉式
class Hunger {
	private Hunger() {
	}

	private static Hunger h = new Hunger();

	public static Hunger getSingleton() {
		return h;
	}
}

class Lazy {

	private static Lazy lazy = null;

	private Lazy() {
	}
//饿汉式(双重锁)
	public static Lazy getSingleton() {
		if (lazy == null) {
			synchronized (Lazy.class) {
				if (lazy == null) {
					lazy = new Lazy();
				}

			}
		}
		return lazy;
	}
}


Java修饰符使用范围

     使用范围

修饰符

同类

同包

不同包的子类

所有

private

×

×

×

default(默认)

×

×

protected

×

public



---------- Android、Java开发期待与您交流----------


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值