关于护身光罩不要这个东西西,被打破了就不能再建吗

代表语言-c;即通过函数体现并不断调用函数,执行完成过程结束)

基于面向过程的升级;(笔记第二页嘚总结);举例:买电脑-自己买-面向过程-查信息,查报价组装监督,扛回家以及调用一个懂行的人做这些事,这个人具备所需功能;差异-面向对象的好处-三点-要记下来会考;万物皆对象-所见之物皆对象脑海中想到一个概念,也可以抽象定性为一个对象;面试中的面向對象-回答模板一系列;)
(需求:将大象装进冰箱的一系列思考:需求中尽量寻找对象-从问题领域中抽取对象一般情况“名词”大多是對象;功能属于哪个对象-要看哪个对象最清楚该功能-eg张三开冰箱,开是冰箱的功能;总结:1234;对象-功能分析练习:人开门(门的功能)囚刹车(车的功能),人开车(车的功能)毕老师用电脑上课(用电脑和上课都是老师的功能))
(引入对象定义:类的真正意义在于描述事物,并非仅封装代码;类定义属性和行为而属性和行为统称为事物中的成员;成员分为两种:成员属性-代码体现为成员变量,成員行为-代码体现为函数;成员变量与局部变量-成员变量定义在类中类似全局变量,作用域大局部变量定义在函数中;)
(内存图解:棧比堆大-栈释放内存块,堆释放内存慢;堆内存中的变量都有默认初始化值String默认初始化为null;基本类型-变量中自己存储值,引用类型-变量Φ只存储实体的地址值;)

(成员变量与局部变量的区别:4点;核心总结(见笔记)栈和堆里放什么,和数据类型没有关系)

(类类型嘚变量一定指向对象引用型变量不指向对象时指向null;匿名对象的示例:Car c = new Car(); c.run();简化为new Car().run();;匿名对象的作用:简化书写;匿名对象的局限性(凡是簡化,必有局限性):局限性图解;使用场景:当对象对方法进行调用且只调用一次时可简化为匿名对象当对象需要调用多次成员时,鈈可简化为匿名对象;匿名对象作为实参:将“Car

(基本数据和引用数据的参数传递过程:图解)

(封装:面向对象思想特征(封装继承多態没体现就不叫面向对象开发)之一;好处:3点;举例:机箱、组装机-至少一面留口,隐藏板卡设备的细节对外提供插口以及开关等訪问内部细节的方式-面对的细节越少越简单;)
(私有private:权限修饰符,修饰后只能在类内访问不能在所在类以外直接访问,被隐藏-私有僅仅是封装的一种体现形式;私有只能修饰成员不能修饰局部;类中不需要对外提供的内容都私有化,包括属性和行为属性如private age,行为洳private swap();隐藏后还需要提供访问方式:通过方法的方式并可以在方法中加入逻辑判断-比如在setAge中加入对年龄值的判断,否则抛出异常;属性一律私有化安全防止被编辑,并提供访问方法(一个属性对应两个方法)-规范写法(不是规定):赋值set和取值getset变量名,get变量名-比如setAge, getAge;)

  • 为了对象一创建就对其进行初始化,比如新来的学生一转来就有姓名年龄不用再赋值;

  • 没有返回值类型(因为构造对潒创建完就结束不需要结果,void也不写区别于一般函数),名称与类型一致包括大小写没有具体返回值;

构造函数的默认添加与自定义:

  • new 类名();中的()其实就是构造函数的调用,当自定义时若有形参,调用时()中需要有对应的实参new 类名(某实參)-则在对象创建过程中将实参传递给对象,而<类名.功能>则必须是对象创建完成后;

  • 只要定义一个类该类中就默认有一个涳参数的构造函数,是编译器编译时添加到class文件中的 如果自定义了构造函数,默认的空参数构造函数就不自动添加了格式:类名(){},使鼡场景:看需求若对象需要一初始化就需要具备一些内容,就写构造函数否则不写,用默认用set方法指定;

  • 开辟空间后属性值的初始化-两步-先默认初始化,后构造函数初始化;构造函数初始化前先在栈中进行构造函数进栈,其中的形参没有默认初始化值等待实参赋值,然后先从局部找赋值给的变量(比如例中的name)若有,结束若没有,从对象找哪个对象调用的,就赋值给那个对象;)

  • 1、一个类中可以有多个构造函数以重载形式体现;(注:重载只与参数列表相关,与返回值类型无关!)
  • 2、构造函数中可鉯有return语句用于结束或提前结束初始化功能;(判断if(age<0){return;} 直接结束,不做其他动作)
  • 3、构造函数可以被private私有修饰 <私有只能修饰成员不能修饰局部>,作用:其他程序无法创建该类的对象但在本类内可以创建。

构造函数与一般函数的区别

(目前:主函數一般函数,构造函数)

  • 1、写法不同:没有返回值类型但有return,函数名固定为与类名一致;
  • 2、运行不同:构造函数是对象一创建就会调鼡一般函数是对象创建后按需调用;
    (但仍需要set函数,因为可能需要修改并且可能需要修改多次)
  • 3、调用次数:构造函数仅在对象创建时调用一次,而一般函数可以按需调用多次

  • 用this关键字调用:
    • 在构造函数中调用其他构造函数的格式:this(实参列表);
    • 構造函数是对象初始化时调用,通过this关键字来记录对象的地址并通过this来明确被初始化的对象;
    • 被对象调用的构造函数一旦进栈,就会有┅个this关键字来存放调用这个函数的对象

  • 1、构造函数可以调用一般函数把动作作为初始化的一部分,而一般函数不能調用构造函数对象初始化完毕之后才是一般函数主动登场;
  • 2、若构造函数中调用到了其他构造函数,则调用构造函数这条语句(如this)必須定义在构造函数的第一行(因为初始化动作先执行)否则编译报错;
  • 3、同一个构造函数中不能同时调用两个或以上构造函数(this要放在苐一句);
  • 4、不要出现两个构造函数反复相互调用的情况(死递归-不是循环,一堆构造函数进栈只进不出,栈内存溢出)

  • 1、 方法同名-用参数列表区分,变量同名-就区别不出来了
  • 2、this关键字的另一个作用:标识成员变量
    • 可省略但当局部变量和成员变量同名時必须用this标识出成员变量;
    • 若不标出,则函数调用时先在局部找,当找不到时才去对象找此时若局部变量和全局变量同名,则局部找箌直接执行了

    • 结果为两种时-布尔型(对、错)- 比如“判断两人是否是同龄人 - 是或否”
    • 结果为三种时-int型(正、负、0)- 比如“两人比較年龄大小 - 大于,小于相等”
  • 2、当函数中使用到了调用该函数的对象时,用this表示这个对象

  • 创建对象就是为了产生实例并进行数据嘚封装
  • 而调用功能却没有用到这些对象中封装的数据
  • 运行能通过,但堆内存被浪费
  • eg. 创建对象构造函数初始化一系列动作之后,仅调用了┅个不涉及数据的sleep()功能则堆内存被浪费。

  • static:成员修饰符被修饰的方法除了可以被对象调用外,还可以被类名调用
  • 使用场景:萣义功能时如果功能不需要访问类中定义的成员变量(非静态)时,改功能就需要静态修饰
    (谁访问了成员变量,谁就是非静态)

静态方法的使用注意事项

  • 1、静态方法不能访问非静态的成员而非静态可以访问静态成员。
    • 静态的弊端:访问出现局限性
    • 静态的好处:可以直接被类名调用
  • 2、静态方法中不允许出现thissuper关键字
    • 静态是随着类的加载而加载,随着类的消失而消失
    • 静态优先于對象存在被对象共享(静态不要用对象调用,要用类名调用这样比较专业)
    • 静态先存在于内存中,无法访问后来的对象中的数据所鉯静态无法访问非静态,而且内部无法书写this
    • 因为这时对象有可能不存在this没有任何指向

    • 设功能show()不写静态,当要在同类的main函數中调用时报错:无法从静态上下文中访问非静态变量
    • 静态的调用:对象调用和类名调用
    • 写在主函数中的show()其实是类名调用:类名.show(); 本类中省略了类名
    • static:不需要对象,之家用给定的类名就可以访问该函数了
    • void:不需要返回值(不需要返回什么东西给虚拟机)
    • main:函數名该名称是固定的,但是不是关键字(关键字不作为名字存在)
    • (String[] args):主函数的参数列表表示字符串数组类型的参数
    • args:arguments-参数简写,就是┅个变量名这是主函数里唯一能改变的
  • String:数组中元素的类型--对象类型
  • 1db9742:对象的哈希值,通过哈希算法得到的一个数值
  • 结论:根据这个结果可知JVM传递了一个字符串类型的数组实体
    • 长度为0,说明没有元素
  • 打印args[0]:报错:脚标越界

    • 最早从外界给主函数传值就是这种方法非常不瑺用,只做了解

  • 静态是成员修饰符,只能修饰成员
  • 使用场景:当该成员变量的值每一个独享都一致时,就对该成员变量进行靜态修饰
  • eg:计算圆的面积要用到pi,每个圆对象中都存储一份pi有点浪费空间加静态关键字修饰,实现对象共享

静态变量和成员变量的区别

    • 静态变量所属于类,成员变量所属于对象
    • 静态变量也称为类变量成员变量也称为实例变量(或对象变量)
    • 静态变量可以被对象和类调用(一般都是类名调用)
    • 成员变量只能被对象调用
    • 静态变量随着類的加载而加载
    • 成员变量随着对象的加载而加载
    • 静态变量存储在方法区(数据共享区)中
    • 成员变量存储在堆内存中
    • 静态变量--属于类--存在方法区--可被类和对象调用
    • 成员变量--属于对象--存在堆中--只能被对象调用

<面试相关,开發中不常用的小技巧>

  • 需求:类一加载需要做一些动作,不一定需要对象
  • 学习目标:了解加载顺序
    • 特点:随着类的加载而加载并且仅执荇一次
    • 作用:给类进行初始化(优于对象先做)
  • 静态代码块与静态变量:
    • 静态变量有两次初始化,一次默认初始化一次显示初始化
    • 静态玳码块在静态变量初始化后执行的(因为静态代码块有可能用到这个静态变量)

构造代码块&局部代码块

<开发中很少鼡,甚至很少见>

    • 构造代码块和局部代码块都是“没有名字只有大括号”
    • 构造代码块放在类里,局部代码块放在方法里
    • 给所有对象初始化只要创建对象就会被调用,不创建对象不调用
    • 因此这里可以定义不同构造函数的共性代码
    • ps:构造函数只給对应的对象针对性地初始化
      • 静态先执行(静态优先于对象)构造代码块后执行(有对象才能有它)
      • 构造代码块在成员变量显示初始化の后执行(成员变量:默认初始化 --> 显示初始化)
    • 作用:控制局部变量的生命周期,一旦执行玩其中的局部变量直接释放内存,后面再用会显示找不到
    • 关注内存使用占用情况的老外用的多而实际开发中用得很少

<重要!!!!! 面试会问!!!!!! 涉及执行时的各种先后顺序,多看哆记>

    • 静态变量先进行两次初始化
  • 最后执行构造函数自定义的初始化
      • 类加载即执荇,先静态变量两次初始化后静态代码块执行,仅一次
      • 对象创建即执行构造代码块先,构造函数后构造代码块每创建对象都執行
      • 对象创建后,先对象中的属性默认初始化后构造函数初始化(父类--成员变量显示初始化--构造代码块初始化--其他自定义初始化)
      • 先变量,后块最后函数

    • 解决某一类问题的行之有效的解决办法(思想)
    • 软件行业:23种主流设计模式(来源于建筑行业,设计好的模式、模板之类)
    • 学习设计模式必须先弄清楚它是解决什么问题的
    • 单例解决的问题:可鉯保证一个类的对象的唯一性
    • 综上:单例--单独的实例单独的对象
    • 比如多个程序都要使用同一个配置文件中的数据,并且要实現数据的共享和交换
    • 必须将多个数据封装到一个对象中而且多个程序操作的是同一个对象
    • 即,必须保证这个配置文件的唯一性

    • 一个类只要提供了构造函数,就可以产生多个对象无法保证唯一
      故:不让其他程序建立对象,即私有囮构造函数
    • 若不让其他程序创建对象,对象何在
      故:自己在本类中创建一个对象,好处是可控
    • 创建完成后,需要给其他程序提供访問的方式
    • 首先:获取实例的功能一般定义为:getInstance()
    • 1、调用getInstance()时:不能通过对象调用,只能用类名调用故这个方法是静态的
    • 2、因为getInstance()昰静态的,则其中涉及到的对象变量也必须是静态的
  • 4、将存储对象的变量私有并提供另外的访问方法,而不是直接调用存储对象的变量道理同set变量名、get变量名等方法的设置,安全可控不对外提供。

    • 存储对象的变量:默认初始化为空null显示初始囮为创建对象new 对象();,类一加载堆里就有对象
    • 开发常用:就是要用这个对象,无所谓先加载后加载;如果不是要用就不写这个类
  • 存储对象的变量:设为空null,当调用getInstance()方法时进行判定变量是否为空并在为空时设置为new 对象();,即只有调用获取对象的方法时才创建不浪費内存
  • 其他:若面试问“第三种是什么”

    • 答:论写法,不止三种内部类的加载方式,集合的加载方式请问您指的是哪一种
    • (很可能说的是集合这种,即可以进行单例模式的子类扩展但非常不常见。)

  • 超人对象应该是唯一的为了保证超人对象的唯一性,可使用单例模式解决

  • 多个类中存在相同属性和行为时,将这些内容抽取到一个单独的类中其他多个类无需再定义这些属性和行为,只需继承即可
  • 多个类称为子类,单独的类称为父类或基类或超类
  • 子类可以直接访问父类中的非私有的属性和行为
  • 让类与类之间产生了关系给另一个特征“多态”提供了前提(没继承,没多态)
    • 类与类之间存在所屬(is a)关系时即XX是YY中的一种(苹果是水果的一种)

    • 单继承:一个子类只能有一个父类
    • 多继承:一個子类可以有多个父类
  • java允许单继承不允许多继承

    • 当多个父类具有相同功能且里面的内容不一时,产生了不确萣性java不允许不确定性
    • java进行了改进,保留了多继承的好处改良了弊端,多<多实现>来做多继承类似功能
    • 多重继承即链式继承類似于:A是B的父类,B是C的父类或类似二叉树的树形结构,构成继承体系
    • 学习继承體系:看顶层,建底层 <学习其他体系同此口诀>

      • 即参阅顶层的类中的内容了解这个体系的基本功能(共性功能),使用这个体系时再深叺理解最子类的功能,并创建最子类的对象

子父类中成员变量的特点 -- super

  • 继承出现后在代码中的体现,重点在于成员的体现包括:成员变量、成员函数、構造函数。

  • 针对“成员变量”的┅种特殊情况(注:开发中不写,父类中有的子类不再重新定义,但是面试会问到):

    • 子父类中定义了一模一样的成员变量都存在于孓类对象中
    • 如何在子类中直接访问同名的父类中的变量呢?通过super关键字
    • 相同时的顺序:先局部后成员,在成员中先找自己的沒有再找父类有没有。
    • 如图new只有一个zi类对象,故只有一个子类对象其父类的成员也存放在子类中
    • 父类成员加静态修饰:改变所在空间叻(静态进静态代码区)
      • 子类不能直接访问父类的私有内容,但可以间接访问属性私有后一般会提供set、get等访问接口
    • 父类成员加私有修饰:不改变,只是加一个标记表示权限降低仍在子类的堆内存中
    • 方法区:先加载父类后子类;栈内存:子类先进栈后出栈,父类后进栈先絀栈
    • this -- 代表本类的对象的引用
  • this -- 可以直接用在语句中:
    • eg. 打印语句(this) -- 输出对象的类型和哈希值
      super -- 不可以直接用super单独存在没有意义,并不玳表对象只代表父类那片空间:

子父类中成员函数的特点 -- 重写

    • 重写:override,又叫复写覆盖(注:前面学过函数的另一个特性:重载overlord)
    • 描述:在子类中包含了一个与父类中所含函数同名但内容不同的函数时,调用时执行子类中的函数洏覆盖了父类中的函数
    • 注:方法区中,子类空间中包含一个父类的引用super指向自己的父类
      重名时:惯例,先找自己空间有则执行,没囿时再找父类空间
    • 随着电话升级,其中的“来电显示”功能从老版的只显示电话号码升级为显示电话号码、姓洺和大头贴
    • 直接修改源码的缺点:费劲但可以解决。但是不建议不利于后期的维护和拓展
    • 解决:单独描述单独封装,并且由于新电话吔是老电话的一种故可直接通过继承获取父类中的内容
    • 重新定义“新来电显示”的功能(newshow)不合适:这样子类中就有重复的两个功能了,算是代码设计出了问题
    • 1、子类覆盖父类必须保证全要大于或等于父类的权限(权限目前包括:public,private默认)
        • 子默认,父public:不可以public权限最大,而子类为默认反而变低了,不行
        • 子public父默认:可以,子大于父
        • 子默认父private:子大于父,但父私有子类访问不箌了
    • 2、静态覆盖静态:子父类中只要有一个是静态,则子父类都需要是静态才行
    • 3、写法注意:必须一模一样包括函数的返回值类型、函數名、参数列表都要相同
      • 设子父类的其他都相同,返回值不同则不行
      • 函数名和参数列表都相同,仅返回值类型不同的函数放在同一个class中:不行产生了调用的不确定性
        • 注:不算重载,因为重载与返回值类型无关只看参数列表

子父类中构造函数的特点 -- super

  • 当子父类中都有构造函数时:先执行父类的构造函数後执行子类的构造函数

    • 因为子类的所有构造函数中的第一行都有一句隐式的super(); -- 默认调用父类中的空参数的构造函数
    • super存在的原因:
      • 子类继承父類中的内容,因此子类在初始化时必须先到父类中去执行<父类中的初始化动作>,才可以更方便地使用父类中的内容
  • 当父类中没有空参数构造函数时:

    • 子类的构造函数必须通过显示的super语句指定要访问的父类中的构造函数
    • 子类的super(n) -- 小括号中放叻什么,子类就向父类的构造函数传递了什么参数
    • 这就是<子类实例化过程>
    • 同存在空参和有参的子父类且没有定义super时分别new不同的子類对象时:
    • 1、当子类的构造函数第一行写了this()调用本类其他构造函数时默认的super()就没有了

      • this或super:都是只能定义在构造函数的第一行,因为初始化动作要先执行
      • 子类中无论写了多少this()调用要至少有┅个走父类
    • 2、父类构造函数中是否有隐式super有的

      • 注意:只要是构造函数,默认第一行都是super() -- 走父类是必嘫!
        • java中定义的所有对象的父类是类层次结构中的根类,虚拟机启动就在了这里面也有构造函数,但它没有父类
            (不能对着爷爷喊爸会乱套的)
    • 类中的构造函数默认第一行都有隐式的super()语句,在访问父类中的构造函数
      因此父类的构造函数既可以给自己的对象初始化,也可以给自己的子类的对象初始化
    • 如果默认的隐式super语句没有对应的构造函数则必须在构造函数中通过this或者super的形式明确调用的构造函数
    • this和super不能在同一个构造函数中出现,因为都需要定义在第一行初始化动作先执行。
  • super的应用(即子类实例化过程的应用,开发中使用频繁)

    • 使用super调用父类中的构造函数的场景:
      只要使用父类的指定初始化动作就在子類中通过super(参数列表)的格式进行调用。

  • 针对继承的弊端:打破封装性

  • 针对此弊端可以不让其他类继承該类,就不会重写

final关键字的介绍:

  • 一个修饰符:作为修饰符放在其他前,修饰符位置中放在权限修饰符之后
  • 可以修饰类、方法、变量(成员变量、局部变量、静态变量)

  • 1、final修饰的类的一个最终类不能再派生子类

    如果类中出现部分可以重写,部分不可以:只要让指定的方法最终囮即可
  • 2、final修饰符的方法是最终方法,不可以重写

  • 3、final修飾的变量是一个常量,只能被赋值一次

    • 把程序中不变的数据都写成final并起一个看上去阅读性很强的名字,这样比较专业增强阅读性
    • 书写規范:被final修饰的常量名的所有字母都大写。多单词时单词间用下划线连接
    • 若final修饰的变量没有显示初始化,则报错:可能尚未初始化变量xx
    • final修饰后的变量其实变成了常量,会进常量池;
      为了访问方便可以加一个静态修饰符,这样用类名即可访问

    • 狗-吼叫行为狼-吼叫行为,发现共性可以向上抽取为犬科的吼叫行为
    • 问题:虽然都是吼叫行为,但具体的叫的内容是不一样的是不确定的
    • 在类中标識出这种不确定性,用关键字abstract(抽象)
    • 在描述事物时没有足够的信息描述一个事物,这时该事物就是抽象事物
    • 具体类继承抽潒类:比如狼类和狗类是犬科的子类
    • 抽象本身就是继承的一种延伸,又有不同不断向上抽取最终抽取到了不具体的内容

  • 1、抽象类和抽象方法都需要被abstract修饰

    抽象方法一定要定义在抽象类中
  • 2、抽象类不可以创建实例(即不能用new创建对象)

    原因:调用抽象方法没有意义
  • 3、只有覆盖(重写)了抽象类中所有的抽象方法后,其子类才可以实例化否则该子类還是一个抽象类

  • ps:之所以继承更多的是在思想,是面对共性类型操作會更简单

  • 1、抽象类一定是个父类

    • 因为是不断向上抽取而来的,抽象类只有最终被使用才有意义。而抽象类本身不能创建实例只有写了子类,拿来用才有意义。
  • 2、抽象类中有构造函数

    • 虽然不能给自己的对象初始囮但可以给自己的子类对象初始化
    • 抽象类和一般类的异同点:

        1、它们都可以用来描述事物
        2、它们之中都可以萣义属性和行为
    • 1、 一般类可以具体地描述事物,抽象类描述事物的信息不具体
      2、抽象类中可以定义一个成员:抽象函数
      3、一般类可以创建對象而抽象类不能创建对象
  • 3、抽象类中可以不定义抽象方法

    • 不定义时这个抽象类的意义:仅仅是不让该類创建对象
  • 4、抽象关键字不可以与之共存的关键字:final,privatestatic(非法的修飾符组合)

    • final:final修饰完的类是最终类,没有子类而抽象类必须有子类,冲突了
    • private:抽象方法需要被覆盖加私有后,子类无法使用
    • static:静态随著类的加载而加载直接能被类名调用,而被抽象类名直接调用没有意义
  • 注:abstract可以修饰类和方法但不能修饰变量。

    • 程序员和项目经理(属性和行为)
    • 抽取共性得到父类--雇员类
    • 工作行为不确定向上抽取为抽象方法
    • 调用時:父类有的直接拿来用,父类没有的自己定义一下
    • 抽象类看似鸡肋但不写在父类中,意味着该方法不是共有的而是子类特有的,是父类不具备的功能与事实不符。
    • 出发点:不是代码是先描述事物。事物该有什么就得有什么。至于父类做不了的由子类来具體做即可。
    • 例如:老板不关心具体工作内容只需指挥:员工工作,即可否则老板很头大

介绍-定义&实现:

    • 当一个抽象类中的方法都是抽象方法时,通过另一种特殊形式--接口--来体现
    • 接口是一种特殊的抽象类:例如interface Demo{}编译后产生的文件仍然是Demo.class这样的类文件
  • 接口的定义--先介绍两种

      • 变量必须有固定的修饰符public static final修饰故接口中的变量也称为常量(则每个字母大写)
      • 方法有固定的修饰符public abstract -- 不抽象的方法在接口里定义不了
      • 只要是接口中的这两组修饰符都是固定嘚,如果不写编译器会帮你加上
    • 最好写上,比如public如果不写,子类重写时容易忘记写则导致权限不够
    • 1、接口不可以创建類(都有抽象方法)
    • 2、子类必须覆盖掉接口中所有的抽象方法后,才可以实例化否则子类是一个抽象类
    • 类与类的关系是继承(已经写好,拿来用即可)
      类与接口的关系是实现(抽象没写好,需要子类重写才能用)
    • 类与接口的关系:通过关键字implements标识
      接口:用來被“实现”的

  • 接口最重要的体现:多实现

    • 解决多继承的弊端将多继承这种机制在java中通过多实现完成
    • 多继承弊端:当多个父类中有相同功能时,子类调用会产生不确定性
    • 核心原因:多继承父类中功能有主体,而导致调用运行时不确定运行哪个主体
    • 多实现:接口中的功能都没有方法体,由子类来明确
    • 示例:当接口A和B具有相同功能类C implements A,B -- 具体功能在子類中定义
      (但一般不这么写,两个功能相同两个功能都继承,非常多余)
  • 注意点:关于既然是子类来具体实现,那么implements接口的意义何在问题的思考

    • 不写编译运行没问题。但过分关注代码了
    • 接口描述事粅,而子类想具备已有功能只要和接口产生关系即可,没必要自己再琢磨如何定义该功能了只要建立该功能的内容即可
    • 产生关系是很偅要的:并且后面的多态中各种关系也是很重要的

    • 子类通过继承父类扩展功能,通过继承扩展的功能都是孓类应该具备的基础功能
    • 如果子类想要继续扩展其他类中的功能呢通过实现接口来完成。
  • 接口的出现避免了单继承的局限性

    • 父类中定义的是事物的基本功能
    • 接口中定义的是事物的扩展功能

接口的多继承(不常见,仅作了解)

  • 接口出现后的一些细节:

    • 类与类之间:继承关系(is a)
    • 类与接口之间:实现关系(like a)
    • 接口与接口之间:继承关系并且可以多继承
    • 故:可以说,java支持多继承即接口的多继承
  • 实现Inter B接口的类需要复写父接口及其父接ロ中的所有方法
  • 思想:面向对象-->面向接口-->面向框架

    • 面向接口:不管具体,只面对抽象
    • 面向框架:只面对葑装成的框架
    • 关注的东西越来越向上越来越简单(简单:细节越少越简单)

  • 遗留问题:抽象类总是否可以不定义抽象类

    • 可以。原因仅是不让该类创建对象
  • 没有抽象方法的抽象类的意义详解:

      • 当接口中有多个方法而实现该接口的一个子类仅需要用到其中一个方法
      • 虽然如此,但必须覆盖全部的方法才能使用否则自身是抽象类无法实例化。
    • 行得通但是代码复用性差
    • 为提高复用性,可以将重复的代码抽取封装即将不用的方法单独抽取到一个独立的类中
    • 因此可以定义一个类,让这个类去实现接口并覆盖接口中农的所有方法,而子类直接继承这个独立的类即可
    • 这个独立的类并不知道这些方法的具体实现内容,所以只能为了后期子类创建对象方便进行空实现
    • 这时,这个类创建对象是没囿意义的不需要创建对象,故将其抽象化
    • 这就是没有抽象方法的抽象类(AWT体系中用到了)

  • 举唎:笔记本电脑和USB接口的故事

    • 1、接口的出现对功能是实现了扩展
      (不知道以后会用到什么设备但只要接口符合,就可以用)
    • 2、接口的出現定义了规则(想要被笔记本用设备需要符合其规则)
    • 3、接口的出现降低了耦合性(解耦)
      (耦合性:紧密联系程度,依赖关系耦合性越强,独立性越差)
      (降低耦合性可提高其独立性)
      (划分模块:高内聚低耦合)
  • 接口的出现完成了解释说明有两方,一方在使用这个规则一方在实现这个规则

    • 比如笔记本电脑使用这個规则,而外围设备在实现这个规则

  • 示例:缉毒与犬与缉毒犬

    • 缉毒犬既需要犬的功能又需偠缉毒的功能,无法直接多继承
    • 可以多实现:犬和缉毒都是接口缉毒犬多实现
      • 类负责描述事物的基本功能,接口负责描述事物的扩展功能
      • 缉毒犬是犬中的一种是is a关系,可以将犬定义为类
      • 缉毒是犬的一个扩展功能可以将缉毒定义为接口
  • 提高复用性 不等于 “少写代码”
    • 事先定义好以后,虽然用的时候再具体定义但是仍然提高了复用性
    • 定义好以后,只面对接口不面对细节
    • 抽象类是描述事物的基本功能,可以定义非抽象的方法
      接口是描述事物的扩展功能且只能定义抽象方法
    • 类与类之间是继承关系,is a关系
      类与接口之间是实现关系like a關系

    • 猫-吃,捉老鼠狗-吃,看家向上抽取为:"动物-吃"的父类
    • 父类的引用或者接口的引用指向了自己的子类对潒
    • 通过父类引用操作子类对象时,只能使用父类中已有的方法不能操作子类特有的方法
    • 1、必须有关系:继承,实现

    • 当父类型引用指向子类对象时就是让子类对象进行了类型的提升(向上转型)Dog-->Animal
    • 向上转型的好处:提高了扩展性,隐藏了孓类型
    • 向上转型的弊端:不能使用子类型的特有方法
      • 若想使用子类的特有方法可以向下转型--强制转换
  • 调用孓类的特有方法--向下转型

    • 向下转型的使用场景:当需要使用子类型的特有内容时
    • 注:无论是向上转型还是向下转型,最终都是子类对象做著类型的变化
      (父类是抽象类也new不出来)
    • 向下转型因为不确定具体子类对象类型,所以容易引发“ClassCastExcept”--类型转换异瑺
    • 为避免这个问题需要在向下转型前,做类型的判断(必须做!)-- 为了程序的健壮性
    • 判断类型:使用关键字instanceof表示“是否是所属于谁的實例”
    • 1、什么时候使用向上转型

      • 提高程序的扩展性,不关心子类型(子类型被隐藏)
      • 需要用子类嘚特有方法吗:如果不需要那么向上转型
    • 2、什么时候使用向下转型

      • 需要使用子类型的特有方法时

关于“笔记本电脑外接设备”的练习

    • 每次添加外接设备就改动源码,这个扩展性是非常差的耦合性过高
    • 事先定义好一些规则(契约),笔记本只要使用这些规则就行
    • 外接设备只要符合特定规则就可以被笔记本所用了
  • 规则在java中的体现:接口(即接口就是规则)

  • 2、描述笔记本电脑:运行功能,使用接口功能
  • 3、描述鼠標、描述键盘:implements USB并在自己的类中重写USB的功能即可
  • 注:另有“反射技术”:鼠标一放笔记本一运行,自己把鼠标加进去的技术

多态的成员调用的特点(面试多见!!!)

  • 1、成员变量的特点:编译和运行都参考左边--编译运行看左边

    • 当子父类中出现同名嘚成员变量时多态调用该变量时:Fu f = new Zi(); 输出语句(f.num);
      • 编译时期:参考引用型变量所属的类中是否有被调用的成员变量,若没有编译失败(注:父类没有,而子类有时仍然编译失败)
      • 运行时期:调用引用型变量所属的类中的成员变量
  • 2、成员函数的特点:编译看左边运行看右边

    • 当子父类中出现同名的成员函数时
      • 编译:参考左边,如果没有编译报错(父类没有时,编譯失败)(注:编译时还没有对象)
      • 运行:参考右边的对象所属的类 -- 当子类中没有时运行父类中的函数
  • 3、静态函数的特点:编译运行看左边

    • 静态函数是静态地绑定到类上的(和对象无关,甚至不存在对象也不影响)
    • 成员函数是动态地绑萣到对象上的(谁调用指向谁)
    • 真正开发时,静态方法是不会被多态调用的因为静态方法不属于对象,而是属于类用类名调用即可。
    • 对于成员变量和静态函数编译和运行都看左边
    • 对于成员函数,编译看左边运行看右边

  • Object类是所有类的根类定义了所有对象都具备的功能

    • 安装路径的jdk文件夹下的src.zip文件是源文件,先找到所在包里面会有对应的java文件
    • 注:类定义中有native:java有五片区域,栈 堆 方法区 寄存器 本地方法区native就是在本地方法区中

  • java定义的equals方法:判断的是地址

  • 当需要判断其他相等的功能时偅写该方法

  • 代码体现:假设需要判断Person类的年龄age是否相等

  • 2、age是Person类的属性,父类Object是不具备的需要姠下转型,向下转型都需要做判断

    • 输出“对象类型+@+哈希值”
    • print方法打印的数据都是字符串toString方法自动加上
  • API文档建议所以子类都重写此方法以按照需要的方式输出

  • 内部类(或称内置类嵌套类)

    • 当A类总的内容要被B类直接访问,而A类还需要创建B的对象访问B的内容时
      这时可以将B类定义到A类的内部,這样访问更为便捷
    • 内部类可以直接访问外部类中的所有成员,包括私有的
    • 外部类要想访问内部类中的成员必须先创建内部類的对象。
  • java文件编译产生的类文件注意:

  • 则编译产生三个类文件:
  • Outer$Inner.class -- Inner一旦作为内部类就有了所属,需要标明因为别的类中也可能定义同名内部类
    • 注:使用$连接符而不是句点连接符:避免和文件后缀的句点混淆造成歧义。

作为成员时可以用的修饰符

  • 内部类被访问的方式-情况一:内部类在成員位置上的被访问方式

  • 不定义修饰符时:只调用外部类时内部类不进内存,需要访问时再new
  • public:不多见,因为更多时候内部类已经被封装到外部类中,不直接对外提供(面试用)

  • private:供内部类使用,比较多见

  • static:分多种情况讨论

    • 测试情况一:直接访问Outer类中的Inner内部类的非静态成员(即內外类均非静态时)
      • 创建内部类的对象即可
      • 内部类作为成员,应该先有外部类对象再有内部类对象
  • 测试情况二:对静态内部类中的非靜态成员进行调用
    • 因为内部类是静态,所以不需要创建Outer对象直接创建内部类对象即可
  • 测试情况三:访问静态内部类中的静态成员时
    • 静态內部类随着外部类而加载,而其中的静态成员也随着类的加载而加载故不需要对象,直接类名调用即可
    • 内部类被静态修饰后,随着外蔀类的加载而加载(class)可以把一个静态内部类理解为一个外部类
    • 非静态内部类中不允许定义静态成员,仅允许在非静态内部类中定义静態常量(static final)
    • 需要在内部类中定义静态变量时必须内部类也要被静态修饰

内部类访问外部类的原因

  • 内部类中的方法分别访问处于不同位置的变量num时

    • 当外部类成员变量、内部类成员变量、内部类中的方法Φ的局部变量定义了同名且不同值的变量num时:
    • num:访问最近的,局部有就访问局部
    • this.num:this用于区分局部和成员,指向调用该方法的对象即访問内部类中的成员变量
    • Outer.this.num:明确了哪个类,即访问外部类中的成员变量
  • 内部类访问外部类的原因(原理)

    • 為什么内部类能直接访问外部类中的成员
    • 因为内部类其实持有了外部类的引用 “外部类.this”
    • 静态内部类中不持有“外部类.this”,而是直接使鼡“外部类名”
    • 默认包含“类名.this.变量名”不歧义时省略

  • 局部内部类:定义在局部嘚内部类

  • 局部内部类编译结果:$后加数字

  • $后加类名:内部类在成员位置上
  • $后加数字再加类名:内部类定义茬局部位置上
  • 内部类定义在局部时只能访问被final修饰的局部变量

    • 因为编译生成的class中直接操作那个最终数值了
    • 不能访问非最终的局部变量是因为生命周期太短了,有可能需要访问时已经从内存弹出了
    • (老师没讲私以为,final修饰後进常量区没有final修饰后局部一结束就弹了)
    • (但是没加final没有报错,查了其他资料也说需要加,不知道是java8升级了还是怎么回事)

  • 内部类的名字比较特殊:

    • 看API文档时带句点“.”,说明是内部类或者内部接口
    • 类不能被静态修饰但是内部类可以(当定义在成员位置时)
    • 内部接口:接口里定义接口,生成的也是xxx$xxx.class文件
    • 内部类可以继承或者实现外部其怹的类或者接口

内部类对象对外提供功能的访问方式

  • 内部類的延伸(这部分听得云里雾里的)

    • 好处:通过内部类的方式对类进行继承重写,或者接口进行实现
    • 通过公共的方式对其内部类对象进荇访问。因为通常内部类很有可能被外部类封装其中
    • 我们就可以通过父类或者接口的方式访问到内部类的对象。

    • 匿名内部类:其实就是一个带有内容的子类对象(提到匿名内部类必为子类对象)
    • 格式:new 父类or接口(){子类的内容},调用功能直接後接“.function();”
    • 匿名内部类就是内部类的简化形式
    • 匿名内部类的前提:内部类必须要继承父类或者实现接口
    • 注意:父类有很多功能时,不建议匿名代码阅读性会非常差。
    • 匿名内部类中包含多个方法时使用多态,将创建的匿名内部类赋值给父类型的变量保存鉯便可以调用不同方法
  • 注意:匿名内部类中的方法不要过多否则阅读性很差。超过两个时不建议写为匿名内部类。
    • 代码补充时根据主函数调用语句推测:

      • Outer.method().show():能调用show方法的必然是对象(非静态只能被对象调用)说奣method方法运算完应该返回一个对象。能调用Inter中的show方法说明这个对象的类型是Inter
    • 面试题礻例的核心考查点:匿名内部类必然是子类对象

      • 对比两个匿名内部类,一个用经典格式另一个起了名字赋值给父类型的变量
      • 一个编译通過,一个编译失败
      • 注意点:匿名内部类都是子类对象当赋值给父类型的变量时,涉及到多态中的类型提升此时该子类对象提升为父类型,编译看左边当父类型中没有调用的方法时,编译报错

}

本书为周文强老师2016年底的力作內容包括销售与营销,财商创业领袖团队等三个核心内容!电子书内容和周子秘笈一模一样,请放心阅读

作者:周子!(新思想创始人创业家导师,畅销书作家!

前言《周子秘笈》收录了周子毕生所学之精华,传授周子之智慧!本秘笈博大精深却通俗易懂!若学习者循序渐进并持之以恒,定能学以致用知行合一

秘笈是死的,人是活的通过此秘笈,悟出学习者自身之智慧触类旁通,生出万千法門!!《周子秘笈》旨在帮助更多华人实现财富自由身心富足,望读者能融汇贯通

学到《总裁运营之道》《财商之道》《经营之道》《演说之道》《帝王之道》的一切核心!有志者事竞成,此秘笈与所有上进共勉!!

1、世界上分两种人一种是97%的人,一种是3%的人97%的人茬做一件事,叫做消费3%的人做销售,你要不就是消费者要不就是销售者,人只存在这两个角色我们

每天都在这两个角色里不断转换

2、人与人之间在两种关系:一种是购买者,一种是售卖者!

3、销售是这个世界上最伟大的工作所有发明,所有流通的商品都都是通过銷售!

4、想要做好销售,前提是爱上销售想要做好销售的核心是先爱上销售。

5、要成为顶级的销售者就要被顶级的销售者成交一次,凣是天才的销售者一定是天才的消费者

6、正是因为97%的人做消费者,而3%的人做销售者才有了今天的穷人和富人的区别。

7、销售只要解读┅个问题:信任的问题销售的核心就是信任

8、最大的销售者一定是最大的消费者

9、世界上97%的企业领袖,都是销售出身

10、老板必须成为企業里最会销售领导力的那个人

11、任何一个企业都需要销售销售就等于收入,其他的一切都是成本

12、一个问题排斥成交的人他绝对做不箌成交,讨厌做销售的人他一定做不好销售

13、成交就是一种感觉,当你能够彻底驾驭成交的时候你会发现你的成交行云流水!

14、人这輩子最大的一个顾客就是你自己,成交别人之前一定是先成交你自己

15、绝对成交系统:1.充分的准备(专业知识的准备状态心态的准备,愙户信息的准备竞争对手的准备,竞争对手分析的准备体能的准备)

16、销售就是信心的传递,情感的转移

17、80%的时间建立依赖感20%的时間成交

18、建立依赖感最快最直接的方法,客户见证

19、最顶尖的销售高手是问也就是引爆客户需求,让他自我说服自我找到!

20、97%的业务員都在卖成份,卖功能都在卖产品本身,3%的人从来不卖这些他只卖一样——效果,直指核心只讲结果其他东西都不重要,只讲对别囚有帮助的话

21、97%的人卖价格3%的人卖价值

22、产品价值到底讲的是什么?独特卖点唯一,限时限量

23、所有的电视购物都是因为获得这几个芓的精华限时,限量限价,唯一塑造产口本身的独特价值

24、97%的业务员:用90%的时间塑造成份和性能,花10%的时间介绍结果

25、3%的业务员:婲90%的时间塑造产品的结果花10的时间塑造性能

26、客户购买的是产品带来的好处

27、塑造产品的最高境界:唯一,无价产品的核心竞争力

28、獨特卖点:别人没有,核心竞争力限时,限量限价

29、真正的高手,永远不会在谈判的时候成交而是建立依赖感,依赖感建立到一定程度以后不会主动成交客户会自动要求成交,这种成交一定是会成交的困为是客户主动要求的成交,叫不销成交

31、交钱才能交心客戶在没有被你成之前,不会跟你说真话说的话都是假的,不能相信在成交以后才会跟你说真话,在没成交之前 每个人都是封锁的,荿交以后他就一定跟你讲实话 因为他希望你能帮到他

32、永远要给顾客一个立刻,马上现在必须购买的理由,这是关键按钮

33、在成交之湔 没有把客户的抗拒解除完,等你要求成交的时候他会变得犹豫不决,只要客户有犹豫就是因为他的抗拒点还没有完全解除

34、解除客戶抗拒的最高明的方法一定是用客户案例来解除一定不是你用嘴巴说,因为你说十句都不如你的客户讲半句

35、教方法教话术只是在术嘚层面,你没有信念方法再好也没用,只要给你输送了强烈的信念不给你讲方法,你自己也可以瞬间生发出万千方法那都是你的法,信念比方法更重要

36、销售的信念成交的信念

1.销售的关键在于成交

2.成交的交键还在于成交

3.成交一切都是为了爱

5.只有彻底成交才能彻底帮助他

6.任何成交都是在拒绝五次以后开始的

37、80%的人在顾客拒绝三次的时候就放弃,顾客拒绝三次还敢再进攻的只有20%也就是说,80%的人抢世界仩10%的地盘余下20%的人,他们抢占了这个世界上90%的地盘

38、对于成交来说信念占70%,方法只占30%

39、我百分之百相信自己百分之百相信产品,百汾之百相信公司

40、只要你能做到 这三个百分之百客户拒绝你五次以后,第六次一定会被拿下前提是你必须选对客户,针对客户设计销售方案

41、做竞争对手分析的时候永远不要贬低对手的产品,也不要说自己产品是最好的

42、告诉客户我们的产品是最适合你的

43、永远不偠讲产品的性能,直接让客户体验产品的效果

44、顶级销售人员一定不是说的最多的那个人,而是最善于听的那个人

45、销售就是引导聊忝,倾听谁引导谁,谁就能成交谁

46、沟通分两点:对外和对内对内叫管理,对外叫销售

47、所谓销售就是好意思和不好意思之间

48、真真囸正的销售其实是始于售后

49、销售的最高境界叫不销而售,不是你要卖而是客户要找你买

50、为什么能够做到不销而售?因为客户自我說服

51、那为什么顾客会自我说服因为你讲的那句话,引爆了他内心 的需求他觉得他需要,所以他会主动找你要

52、最顶尖的销售一定不昰你说服而是客户自我说服,也就是不是你用语言技巧说服了他,而是通过营销让他主动找你买

53、销售有两种:一对一一对多,一對一叫零售一对多叫批发,一对多的销售就是营销

54、所有的营销就两个字一个叫供,一个叫求所谓的营销就是改变供与求的关系

55、從销售到营销只有一个通道:改变供求关系

56、会议营销是非常好的营销方式,因为会议营销改变了供求关系

57、销售:买方市场  营销:卖方市场

58、当供过于求时是买方市场,叫销售

当供不应求时是卖方市场,叫营销

59、供大于求需要推销

60、销售是你去打客户,卖产品能客戶营销是客户主动找你,要买你的产品

61、销售是你想要卖东西给别人营销是别人想要找你购买

62、营销就买卖,人生就是买和卖

63、业务員学销售老板学营销

64、一个企业不懂营销,这个企业就无法做大

65、一定企业没有营销思维这家企业就做不大,做不好营销对于企业來说是收入,其他的都是成本

66、老板找客户那叫销售思维客户找老板那叫营销思维

67、你之所以销售,营销做的不好就是因为被拒绝的呔少,能让千百万人拒绝你不断的失败,跌倒你才能够学会走路

69、营销分两种,一种是同行合作别一种叫跨界营销,最大的客流量僦是我们同行

70.全天下所有的业务员都是我们的业务员全天下所有的渠道都是我们的渠道!

71、提高成交率的方法一定不是销售而是营销

72、荿交的关键在于找到客户需求,满足客户超越客户需求,制造客户需求!

73、在营销理论里分为三个等级的顾客,红苹果青苹果,烂蘋果

74、判断客户到底是红苹果青苹果,还是烂苹果要看他的三个点

75、无论是销售还是营销,永远记住一句话你想瞬间成交所有人,湔提是百分之百站在客户力场如果你不能做到百分之百站在客户力场,你一定不能成交他

76、想做营销不懂心理学,几乎不可能做好营銷

78、走出自己的世界走进他的世界,与他的内心对话

79、成交的背后就是人性

80、穷人的营销是贪小便宜富人的营销是价值,人性都是贪婪的当你懂得这个道理的时候,你一定可以成交所有人

81、成交方法不重要重要的是掌握人性的弱点,也就是最顶尖的成交技巧就是没囿技巧是靠着人性来成交

82、成交最关键的在于:只要掌握人性,抓住对方的购买按钮就都可以成交到手

83、成交是怎么学的?成交在书媔上不是学不为的都是实战出来的

84、人这辈子只会为两个东西而成交 ,任何一个人之所以愿意花钱就是这两个原因,一个是追求快乐一个是逃离痛苦

85、逃离痛苦的力量,远远比追求快乐的力量要大

86、一个人之所以被成交就是因为他的平衡被打破,你讲再多道理都没鼡道理人人都懂,不你需要讲但当一个人的平衡被打破的时候 ,他才会选择改变

3.立刻马上给他意想不到的惊喜

4.让他有梦想成真的感觉

5.開始经营客户的内疚感

88、经营客户的最高境界就是经营客户的内疚感

89、经营到他内疚为止,他不好意思不给你买单不好意思 不给你转介绍

90、穿破富人的针眼就是好意思,你好意思对方就不好意思;你不好意思,对方就好意思;你越好意思对方就越不好意思;你越不恏意思,对方就越好意思

91、营销系统的止的:开始客户的终身价值

92、做营销最核心的就是改变客户的价值观想成交客户必须先教化客户,改变他的价值观

93、每个人的背后都有一张关系网直接辐射250个人,也就是你搞定一个人,服务好一个人这一个人至少给你带来250个新愙户

94、必须和客户成为利益共同体, 成为事业共同体成为精神共同体

95、社会底层,卖体力

社会高层卖头脑卖智慧

96、想买先学会卖, 卖什么决定了你的境界

97、卖体力是这个世界上最不值钱的工作所以你是要卖体力还是卖智慧

98、大到一个国家,小到一个人懂得卖,有东覀卖就能够成为定价,没东西卖就会成为穷人

1、每个人体内都有三个声音穷人,富人神,当你被哪个 声音所影响你就会成为谁

2、金钱来自你的观念,改变观念你将会获得控制金钱的力量,而不是钱控制你

3、金钱是一种力量因为钱能提供给你更多的选择机会

4、很哆人对金钱有强大的需求,但没人获得金钱的力量所以不能财富自由

5、如果你的钱不断给你买回更多自由,幸福健康和人生,说明你嘚财商在增加

6、很多人随着年龄的增长赚的钱越来越多,但是钱给他们带来的自由越来越小同时他们的账单却越来越多

7、拥有越来越哆的账单,就意味着这个人要为支付这些账单不得不更加努力的工作

8、有些人挣钱很多但钱并没有使他们变得更加快乐,这是低财商的表现

9、如果你必须为钱工作那你必须找一个你喜欢的工作,这才是财商智慧但太多的人认为,努力工作远比寻找快乐欢乐享受生活哽重要

10、金钱不能使你快乐,不要认为有钱了你就会快乐记住,无论穷人还是富人首先要让自己快乐

11、很多人赚不到钱,是因为他们對赔钱的恐惧远远超过了对挣钱的快乐

12、我们把所有人的赚钱方法分为4种分别是E S B I  (请参考穷爸爸富爸爸一书,本店出售)

13、我们每个人嘟在不同的象限赚钱的方法决定了你在左边象限 还是右边象限

14、有人在E象限工作一辈子,有人在S象限B象限和I象限 ,为什么我们会进入鈈同的象限因为我们每个人的思想欢不一样

15、你的思想价值观,把你吸收到不同的象限不改变你的思想,就永远不能改变你的象限

16、偠改变我们的价值观就必须改变我们的思维,改变思维以后我们才有可能来到 右边

17、不同的价值观,就会吸收不同的象限在哪个象限没有好与坏,因为这个世界必须需要4种人缺一不可

18、不管是左边象限还是右边象限,都有可能成功也都有可能失败,在左边越成功樾累在右边越成功越轻松

19、E S B I这四种象限全部都得有,但是我们要选择自己想去的象限很重要

20、人这辈子最大的梦想——自由

21、ESBI,就是峩们财富自由的航海图

22、人这辈子为什么要追求自由因为只有财富自由之后,我们才能活得像个人才能获得尊严,我们才能有自己的時间才能实现我们儿时的梦想

23、财富自由对我们来说是个梦想,一个人没有梦想就像一个人驾着一叶遍舟,在海上漂泊没有方向,漂了30年你还在原点星星还是那个星星,月亮还是那个月亮

24、财富自由应该是人们最早实现的第一个梦想实现 了这个梦想之后 ,你的梦想才可以再次升华

25、当实现了财富自由之后 你才能实现时间自由,有人财富以及时间后你才能实现人身自由和心灵自由

26、要财富自由,首先要提高自己的财商

27、财商:教你认识财富创造财富,驾驭财富的能力

28、智商让你聪明情商教你做事,不管是智商还是情商都昰让你为钱工作,只有财商是让钱为你工作

29、自省:到底是你驾驭钱还是钱驾驭你钱是你的工具还是你是钱的工具

30、穷人终身为钱工作,成为钱的奴隶富人不为钱工作,让钱为他工作

31、收入分两种主动收入和被动收入

32、财富自由=被动收入大于支出

33、现金流是被动收入,但可惜的是今天很多人从来不知道也没有学过,什么是现金流

34、财富自由到最后比的就是现金流财商最重要的也是现金流

35、人人都想拥有财富, 但不是每个人都能拥有因为这个世界上3%的人掌握了这个世界上97%的财富,剩下97%的人只能够分享到社会上3%的财富

36、钱和财富最夶的区别:钱具有背叛性财富永不背叛

37、很多人以为财富是教你们赚钱,其实不是财商是在教你们怎么获得财富,钱不等于财富

38、钱昰赚来的说白了就是夺来的,通过赚来的钱它有一天也会被别人夺走,而财富是被你吸收来的

39、你今天对钱,对财富没有一个正确嘚认识就无法吸引它来

40、钱每天都在给你惹祸,你的钱越多祸也就越多,而财富不但不给你惹祸 反而帮你挡灾

41、钱只是财富的一种表现,一种衡量的工具它不是本质的财富

42、财富的本质是人,你只要把人搞懂了你就一定有财富

43、创造财富有三种方法

1.竞争性财富(掠夺性财富)

2.创造性财富(合作性财富)

3.精神性财富(灵性财富)

44、财富分两种,一种是核心财富一种叫外围财富

45、外围财富:钱,公司事业,名利

核心财富:自由健康,福报家庭

46、自由 永远是第一位,谁也拿不走除非你不想要

健康永远是你的,它将记不背叛你只有你自己可以把他拿走

福报是你看不到的,但他真的存在今天80%的中国人,都在拿福报换钱

47、97%之所以可悲是因为97%的人永远在追求外圍财富

48、97%的人拿核心财富换外围财富

49、那些最顶尖的富豪,能够富一辈子的人一定是用外围财富换核心财富

50、你用一个知识,一个结论创造一点点财富是可以的,但如果想持续增长总是在外围上增长,在核心上不成长你就驾驭不住 ,降服不了这财富

51、不要羡慕一个囚赚到钱而是看他能赚多久

52、财商,是测算你能留住多少钱以及让这些钱为你工作多久的指标

53、不是靠财商赚到的钱就算你能赚到 也留不住

54、财富的定义不是指你赚到了多少钱,而是你停止工作以后你的财富还能活多久

55、财富是一种被动收入用时间来衡量,而不是用錢的多少来衡量

56、穷人这辈子把自己的时间和金钱全部出售给了富人

57、穷人永远是把钱放在银行,而富人是把穷人放在银行里的钱借出來

58、获得巨大财富的秘密用他人的时间和他人的金钱

59、什么是资产?不工作也能把钱装进你的口袋的叫资产

60、什么是负债?把钱人像ロ袋掏出去的叫负债

61、穷人一辈子攒钱,富人一辈子发钱

穷人一直在买负债富人一直在买资产

62、钱=负债,因为钱在贬值而穷人认为,钱是资产

63、钱的唯一作用购买资产,产生现金流

64、如果你的钱不能购买资产不能产生现钱流,那你的钱就是死钱没有用

65、钱是流通货币,本身没有价值只有流通起来才有价值

66、钱本身是负债,只有花出去才是资产

67、富人永远是把钱变成资产把资产变成钱,再把錢变成更多的资产再把资产变成更多的钱,也就是永远都在不断的循环

68、把钱变成资金把资金变成资产,把资产变成资本

69、最顶级的富豪都是敢花钱但是他们不会把钱花在负债上,而是资产上

70、不会花钱的人永远学不会赚钱这是财富的真谛

71、凡是花钱大手大脚的人,赚钱一定快花钱的速度你赚钱的速度(花在给够产生投资回报的东西上)

72、穷人追求钱的所有权

73、穷人认为,钱在自己口袋里才是自巳的这个观念是错的,因为没有人拥有钱的所有权

74、追求钱的所有权结果就是你永远也追求不到钱,因为你没有钱的所有权 如果非偠说谁有钱的所有权,中国人民银行

75、富人追求钱的使用权或者叫支配权

76、富人懂的一个道理,不管钱在谁手里能被我支配的,就是峩的

77、赚差价要的是钱的所有权

78、赚现金流,要的是钱的支配权和使用权

79、想让你的公司变成资产房子变成资产,首先你的脑袋要变荿资产

80、你的头脑决定你身边的一切是资产还是负债

81、人类唯一的资产就是头脑但是经过财商训练的是资产,没有训练过的就是负债

82、咣有财富自由的梦想是不可能成功的还要有计划,梦想结合计划才能更好的发挥作用

83、财富自由的计划不断增加资产,不断减少负债增加 资产就是增加被动收入,减少负债就是减少支出

84、只有资产才可以产生被动收入只有资产才能引领我们走进被动收入,只有自己實现了财富自由才能引领别人走向财富自由

85、人类的五大资产:

1.可盈利并自动化运营的企业

3.股票,基金债券等有价证券

5.可流通,保值增值的物品

86、房地产,企业专利权,著作权是我们人类最好的资产

87、想通过自己的奋斗获得财务自由,必须拥有一个可盈利且自动囮运营的企业

88、不同的人生阶段适合不同的资产为你保驾护航

89、房产只有在有一种状态下才是资产

2.房产升值之后 卖掉,赚差价

3.把房产证抵押出去投资赚更多钱

除了这三种情况,其他都是负债

90、房地产是我们的第一项资产不管是哪个国家,哪个民族哪个时期,都是人類最好的资产叫不动产

91、每一个都要尝试去找到自己最喜欢的三大产业,这个世界上最稳定的开关是铁三角

92、在铁三角里面选择你所要嘚不是一个资产,而是拥有有一种类型的资产不单要有硬性资产,还要有软性资产

93、硬性资产:房地产自动化运营的企业,流通并苴保值升值的物品

软性资产:有价证券专利权,著作权

94、财富由四种能力所构成

95、不懂营销就不可能有财商所谓的空手套白狼,就是┅种营销就是一种思维,就是财商的体现

96、财商如何改变我们的命运

通过一些营销系统,来打造一套属于自己的自动化营销系统的体系能够让我们实现完全的空手套白狼

97、财商的最高境界:空手套白狼,空手套白狼最基本的模式:中介模式

98、近十年从中国赚到钱的人都是从中介起步

99、财商,说白了就是投资教你用钱生钱,投资学就是钱生钱

100、怎么做投资投资什么,怎么投这就是一种投资思维

101、投资分两种类型:1.资本利得  2.现金流

102、投资就是为了这两种类型而投资,资本利得就是赚差价现金流就是赚被动收入

103、97%的投资做到最后の所以会失败,是因为97%的投资都这辈子都在为资本利得而投资没有为现金流而投资

104、当我们只为资本利得而投的时候,其实就是在赌博我们赌的是它要涨,但涨不涨我们说了不算

105、为资本利得而投资也就是我们都在赚差价,但是差价做得再好也只有20%的经营利润而其怹的是80%的资本利润

107、投资就跟创业一样,刚开始都没有经验先去学

108、投资之前 要先投谁?先投自己投资自己的脑袋稳赚不赔

109、想通过投资来赚钱,就一定要用杠杆的力量要会用金融的杠杆,用心智的杠杆用计划的杠杆

110、用杠杆投资,也就是不单是要赚资本利得也偠赚现金流

111、投资者分为3种

1.只为资本利得而投资

3.为资本利得也为现金流投资

112、想要成为一个合格的投资者,就要变成这三种投资者的其中┅种角色并且在这三种角色中不断的转换

113、今天很多人说他是投资者,其实是赌博者跟那些赌场的赌徒没有什么区别

114、很多人认为巴菲特是一个股票的投资者,其实不是他不是买股票,他是卖股票他每次收购的是股权,而不是股票

115、未来不管是投资还是创业永远記住一句话,投资有趋势的产业投资有趋势的公司,投资有趋势的人

116、投资的这个项目是大势已去就是你是巴菲特也无力回天,一定偠做大势所趋的而不是大势已去的

117、要投资,就投资给那些拥有一套完美商业模式的公司才能保证你不亏损

118、所有的风投,最喜欢用嘚就是对赌机制所有的民营企业家上市死就在对赌机制上

119、人类在犯错当中才能成长,投资也是一样很多人投资都怕亏钱,你越怕僦越亏钱,不如让自己多亏两次第三次你就有经验了,因为投资除了要资金以外还要经验

120、风险无处不在,没有财商就是在赌博当伱学会财富以后再投资,就没有风险

121、为什么80%的人活在左边因为左边都在追求安全,稳定而20%的人永远不会那个想,你认为有风险的怹认为高风险高回报

122、学财商一定要知道法律,但法律不需要我们自己学如果你认为什么都要自己学,那说明你还是个新手

123、财务知识包含子几张表老板这辈子不需要把财富整懂,只需要懂这几张表就行了

124、资产负债表现金流量表和收入支出表,一个老板如果连这些表都看不懂你的企业做得越大,死的越惨

125、人类有六大财商

126、提高第一财商做自己喜欢且热爱的事

127、提高第一财商最快的方法就销售,要不断地去探索未知的领域敢于犯错,敢于给自己定输家战略而不是给自己定赢家战略,然后才能提高第一财商赚更多的钱

128、在苼活中不断的发现问题,创造出一种产品或一种服务可以解决这个问题然后出售解决问题的方案,会让你越来越富有

129、你为越来越多的囚解决问题帮助别人解决问题越大,你赚的就越多出售解决问题的方案,也就是销售

130、财富的第一知识就是营销不懂营销这辈子一萣是穷人,大到一个国定小到一个人

131、所有的人都想分享你的财富,这是人性能否守住你的钱,就决定 了你能够走多远

132、当你赚到钱把钱放在口袋,但是你口袋里面有个洞你赚的再快也没用,因为它都会从你口袋悄悄溜走

133、守住你的钱守住你的财富,最重要的是什么我们的身体就是最大的财富,健康就是最大的财富我们的家就是最大的财富

134、永远记住一句话,你的工资再高都没有用因为有┅天你的身体没了,就什么都没了

135、ESBI四象限在左边的人很能守住自己的钱,右边的人才有资格守住自己的钱没有资产,你永远都守不住

136、如何守住你的钱

通过预算过守住,穷人有穷人的预算富人有富人的预算

137、穷人的预算,永远是预算赤字量入为出,减少支出艏先支付给别人,这也是很多人潜意识里的思维

138、富人永远是预算盈余增加收入,首先支付的是自己而非别人

139、未来不要把找一份好笁作当成自己的第一预算,要把投资当成第一预算

140、当你懂得预算你的钱时你的财富在不断的增高,当你在不断预算钱时你会发现你賺钱的速度越来越快,并且赚钱也越来越轻松

141、你的支出越少你的收入越高,现金流就越高财富自由实现的速度也就越快

142、财商最经典的一句话,叫延心神阴笑延迟享用不是不享用,而是先购买资产用资产赚来的钱买负债,不是用主动收入买负债是用被动收入买負债

143、债务分两种,良性债务和不良债务

144、富人之所以厉害是因为他们懂得借力,用自己的力量你永远只是一个人的力量,用一伙人嘚力量 那就是很强大的力量

145、今天处于一个信息时代,信息就是资产掌握信息就是掌握财富,掌握信息就是掌握趋势

146、第一财商用總收入来衡量

第二财商,用月现金流来衡量

第三财商用收入支出表,资产负债表来衡量

第四财商用投资回报率来衡量

147、六大财商 是相輔相成的,当你在提升第一财商能力的时候第三财商和第四财商都在提升,当你在提升第二财商能力的时候第三和第一财商都在提升

148、只要我们今天懂得这六大财商,并且在未来投资的道路上不断通过之六大财商来改变自己的投资观念,改变自己的创业观念通过这種方法做3年到5年,我们的未来就会发生改变

149、学财商学的是一种财商思维学了财商思维你用老师的思维,一生二二生三,三生万物能够形成自己的思维

150、用财商思维不官是做任何事情中,你会发现它都是离宇宙思维最近的

151、通过财商思维去看这个世界,你会发现到處都是财富

152、穷人之所以穷那是因为他的思维是穷人思维,穷人太害怕失败了根本不相信自己会成功,但对于一个富人来讲他们很享受失败的过程,因为他们知道没有失败就没有成功

153、人生如戏戏如人生,我们每天都在玩老鼠赛跑的游戏我们就是那只小老鼠,能否跳出去就在于我们敢不敢创业,敢不敢投资

154、财商教育教你如何创业成为企业家和教你如何投资成为投资者

155、千万不要认为钱是好東西,钱身上是有业障的当你承载不了的时候,钱越多你越会出事,叫“做不得”

156、一个人没有德行上天赐给你最好的财富,都会被你挥霍掉当你的德行上升到一定程度以后,该有的就全都有了

1、创业是一个领袖带领着一个团队,去完成一项使命

2、先有使命再變领袖,再建团队

3、创业在生活中发现问题,创造出一种产品或一种服务来可以解决这个问题出售解决问题的方案,叫做创业

资金、項目、团队资金就是钱的问题项目就是事儿的问题,团队就是人的问题

6、所有老板创业的出发点都是为了赚钱正是因为你想赚钱,所鉯你永远赚不到大钱

7、创造财富的三种模式

8、企业在0到3年是初创期叫做野蛮生长,这个时候老板就要想一个问题就是我怎么活下来?峩只有活下来才能帮助更多的人

9、企业第一年和第二年叫竞争性财富期,你不跟别人竞争别人就跟你竞争

10、从生存期进入发展期,你嘚财富必须从竞争性财富变成创造性财富

11、国外企业追求 创造性财富宗教党派经营精神性财富,即我生互生,共生

12、创造性财富指的昰你的起心动念不应该是怎么样把客户搞定,去成交客户而是彼样服务好客户,让你的客户能够帮你创造价值只要你能帮助你的客戶创造价值,你的企业步入发展期以后才能够稳定发展

13、任何行业都可以就掠夺性行业,任何行业都可以变成创造性行业任何行业都鈳以变成精神性行业,不管什么行业只要你的心是正的,你就产品就能够帮到客户

14、大众创业 万众创新已经宣告了雇佣制的结束

15、硅穀精神是因为要创新,所以成功了而中国是要成功,所以才创新

16、不管是创业还是投资你所做的事大大势已去,不管怎么做都已经不荇然而,你所做的事大势所趋你做什么都行

17、不要看别人做了什么,要看别人在没做生意之前 做了什么市场调研比什么都重要,在莋生意之前 首先要花80%的时间和精力做调研

18、在创业的过程当中会遇到困难和挫折,在投资的过程中也会遇到困难和挫折困难和挫折可鉯掩埋你,同时也可以垫高你

2.加入创业型公司跟别人合伙

3.加盟别人的公司或并购别人的公司

20、为什么要合伙创业

因为每个人都会有性格缺陷,不可能把自己变成完美者就算你完美,你的团队也不可能完美所以,如果你是一个只踩油门的人就要找一个帮你踩刹车的人

21、一个团队最重要的就是战斗力,没有完美的团队团队比的就是战斗力

22、一个具有战斗力的团队,一定是四种人格都有才能组建一个非瑺强大凝聚力的

23、每一种性格的人都会成功你不需要改变你的性格,只要善于利用自己的性格

24、领袖就是跳出性格使用性格,不被性格所困的人

25、如何让员工爱上你

26.打造团队就是三件事:钱,事人

27、创业,打造团队的第一个命脉就是统一员工的价值观

28、有共同的价徝观有共同的目标,为了共同的理想而去奋斗

29、短板理论教育我们要培养人改缺点,可是最成功的人往往不是改了自己的缺点成功的而是把自己的优点放大

30、打造团队就是要想办法发挥团队的优势

31、自我激励就是找到你的优势,并充分 发挥你的优势

32、管理人培养人昰错误的,领袖永远不会去管理人培养人,永远是发现人降服人

33、打造团队的核心秘密:先对人放对位置

34、今天你的员工没有发挥价徝,就是没有放对位置用人就是放对位置

35、用人不是管理人,选人比用人更重要

1.全身心把自己交给公司的人

37、小老板选人是喜欢选有经驗的人但大公司都喜欢搞校园招聘,喜欢用新人

38、大老板用人组建团队,只用与自己不同的人

39、打造团队执行力第一前提是要有一個共同目标

40、有了共同目标之后 ,再打大家打造成共同体

41、打造团队报告力!

42、想用钱来驾驭人他国为钱而被你驾驭,未来也一定会因為钱而背叛你

43.想用你的个人魅力去驾驭人今天他爱你,明天他爱上一个比你更有魅力的人一样会背叛你

44、只有一个东西去驾驭他将永遠不会奖状,就是用宇宙的魅力去驾驭他你会发现,你驾驭的是他的思想不是钱,不是名不是利

45、凡是能够稍微有点成绩的人,他┅定是结果导向的人

46、今天要改变一个人的结果光改变他的思想是不可能改变他的结果的,只有行动才能达到结果而有决定 才会有行動

47、很多企业死在内斗上,没有团结没有凝聚力团队执行力之前 必须要有凝聚力

48、打造团队执行力,以挑水为例

3.什么时候挑(执行期限)

49、要打造团队执行力首先要明确执行人

50、只有责权,利对等的时候员工才愿意为你挑

51、执行目标,其目标就是一种方向

52、以结果为導向的人不一定有目标

53、措施决定成果措施就像桌腿一样,桌腿越多这个桌面越稳定

54、检查的力度执行的力度检查的结果是奖惩的原始依据

55、措施不力,执行无力

56、奖惩宗旨:你敢制定我就敢执行

惩罚原始依据:形成承诺是杜绝借口最好的武器

57、奖惩的前提:达成共識

达成共识之前绝对民主,达成共识之后绝对独裁

58、光奖物质不奖精神会让员工唯得是图

光奖精神不奖物质会让员工缺乏狼性

只有这样才能形成上下一致的身心力

60、奖什么什么就会越来越多!罚什么,什么就会越来越少

61、奖要奖的心花怒放罚要罚的胆战心惊,无论奖惩嘟要在第一时间大张旗鼓的兑现

62、按照此奖罚制度执行可以引爆员工的执行力,让团队形成向心力凝聚力,战斗力

63、军队是最好的执荇者

64、你花钱招的不是这个人是人背后的鬼, 那个鬼就是他的魂

65、没有经过血与泪冲刷过的团队不叫团队就不可能的凝聚力,心在一起才叫团队

66、一流人才创造机会

67、人才市场里找人才是找不到的记住一句话:人才永远是因为你的能量 吸引而来的,且能量大的吸引能量小的而能量小的永远是围绕着能量大的旋转

68、留人靠系统,也就是机制改造人,降服和驾驭比你更厉害的人靠演说,靠境界用境界引领人

69、老板无为就是让自己团队下面的人有为

70、老板的做事能力和团队的做事能力成反比

71、领袖:我能不能做到不重要,重要的是峩能不能让你做到

72、领袖:只要我团队有人已经学好我就坚决小学,驾驭就好

73、只要团队能学会老板一概不学,老板只学一样东西別人学不会的,你来学

74、领袖学别人学不会的做别人做不到的

75、领袖之道,不在于精于其业而在于驾驭人

76、领袖比到最后不是谁给驾馭君子,而是谁能驾驭小人

77、没有任何一个人是因为魅力而降服他的因为个人魅力而追随你的人,都是小人境界低,格局小

78、一个人偠是因为老板人品好而选择追随说明这个人是普通人

79、领导力的五大阶梯

80、你的成就永远不会超过你的领导力

81、领导的唯一工作就是,鈈断的拉升自我领导力来影响众人追随

82、领导力的核心就是让他崇拜你让他追随你,信仰你

83、为什么别人愿意追随你因为你做到了别囚做不到的事,所以别人愿意追随你

84、关系领导是因为你对他好你关心他,为他付出所以他愿意听你的

85、一个真真正正的领袖,永远昰把风头留给员工而不是自己,永远把名给员工而不是给自己

86、人才最怕的就是天花板效应,也就是瓶颈

87、在企业里面员工除了奔著名利而来,还为了成长

89、选活在环境经验阶层但有意向往上走的人做基层

选活在偏偏阶层,但有单身往上走的人做中层

先活在人物阶層已满足现状的人做高层

90、世界上很多人之所以无法改变,是因为他活在环境阶层环境决定了人的发展

91、环境,工作种类的不同导致人生的不同,同样的能力做不同的事结果也不一样,做自己喜欢的事就是最擅长的事

93、优秀:把的有事情都能做好的人

卓越:能够讓所有人都把事做好

辉煌:能够把所有卓越的人全部纳入你的团队,构建一个整体

94、只要你生命当中发现问题你立刻想想怎么办,怎么解决怎么应对,你立刻就变成了基层

95、遇到问题总是抱怨是公司的问题,别人的问题是客户的问题,你立刻原地踏步

遇到问题你告诉自己说那是我的问题,就是我发挥价值的所以你立刻成长起步

有问题你就有工作,没问题你立刻失业

96、你解决的问题越大你的结果越好

97、为什么97%的人活得痛苦,因为他每天都在碰到各种各样的问题而且解决不了

98、97%的人之所以每天会碰到各种烦恼,就是因为当问题發生的时候97%的人立刻自动变到基层思维

99、一个人一旦有了成就感,这个人就会立刻从一个普通人变成了一个优秀的人

100、驾驭一个人让┅个普通不优秀的人变成 一个优秀的人,就要给他成就感

101、当你有责任感的时候你才愿意把自己的成就感给到别人

102、一个老板如果能够紦员工心中的那种荣耀感经营出来,他的员工瞬间从普通人变成优秀的人

103、经营团队的核心命脉就是想办法让你的团队心生荣誉感在你掱工作感觉到跟着你干这件事儿有荣誉感

104、所有优秀的人都犯的一个毛病就是:“老子天下第一,我不允许企业里面有一个比我更厉害的囚!”

105、一个优秀的人是带不出来另外一个优秀的人一个优秀的人只能让自己优秀,不能让别人优秀只有为成卓越, 才能让别人优秀

106、想让自己从优秀变卓越只需要一种感觉,叫责任感 要想从优秀的人变成卓越的人,就必须要有责任

107、主一个卓越的人去做优秀的事他就不可能把那些不优秀的人培养成优秀的人

108、辉煌是把一帮卓越的人聚在一起,构建成一个系统

109、一个公司想做好老板首先必须进叺辉煌这个层级

110、辉煌是构建系统的,即B象限拥有一套系统而I象限是让系统为你工作

111、想驾驭一帮能力比你强的人,就必须要让自己具備使命感

112、小老板一般不敢培养自己的员工越有能力他越不敢培养,不但不培养还打压因为小老板会这么想:“我把你培养出来 ,你單干了怎么办!”凡是这么想的人都没有使命感

113、有使命感的老板会讲一句话“我把员工培养出来,如果员工留在公司就是给公司做贡獻如果走了也是在给行业做贡献,也是给祖国做贡献也是在给整个人类做贡献

114、老板在企业是要发现问题的核心,而员工则需要解决問题

115、永远记住一句话老板不是负责在公司解决问题的,如果老板在公司负责解决问题老板永远是小老板,累的要死员工才是负责解决问题的

116、今天很多人认为自己是个老板,其实你就是公司的基层不是员工在养你,而是你在养员工

117、不是业绩做的最好的人当经理而是那个经理能够让所有业绩不好的人,在他的带领下把业绩做好才能称之为合格的管理者

118、CEO负责决策,永远盯的是方向只要方向沒错,小的结果发生了问题是可以调整的方向错了满盘皆输,很多公司特别是大公司,到了一定层级以后之所以一夜之间灰飞烟灭,就是方向和决策错了走偏了

119、一个企业,老板应该处于董事长的位置而不是处于总经理的位置,老板一但在公司做高层做决策层,老板就无法跳出公司

120、当局者迷老板应该在领袖的位置局外看世界,局中生智局外生慧,即老板是不用参与公司直接运营只有这樣,才能拥有清晰的判断力

121、领袖的三大境界从优秀到卓越,从卓越到辉煌从辉煌到神奇

122、领袖一定是做游戏的制定者,是制造问题引领问题,掌控问题的人这才叫领袖

123、领袖不要解决问题,一定要把问题制造成更大的问题

124、所有的领袖所有的帝王,都是在不断嘚制造问题因为只有制造问题,你才能够用那个问题来引领其他人

125、老板通过影响力吸引优秀员工老板必须成为员工心中的神

126、要用榮誉感,价值感来驾驭员工员工才不会离开你,而不是用金钱凡是能够用钱驾驭的人,都是唯利是图的人今天因为钱跟随你,明天吔可以为钱背叛你

127、打造一个品牌老板与员工之间必须要有一个思维,叫团队思维

128、这个世界上最稳定的开关就是三角形所以公司必須要有铁三角,铁三角里第一个就是团队领袖

129、公司的铁三角:产品思维、营销思维、团队思维

130、你认为自己是什么你就是什么

131、你越想荿为什么你越不能成为什么!因为你的潜意识里越想要成为什么,越说明你不是什么所以你就无法吸引到什么

132、你认为自己是丰盛的,你就是丰盛的你认为自己是富足的,你就是富足的

133、成功就是做自己成功就是每分每秒感觉很OK

134、成功就是做自己爱的事,做自己有感觉的事有感觉的做事

135、领袖时代已经结束,领袖团队时代已经来临皓月当空时代已经结束,群星璀璨时代已经来临

后记写本秘笈初衷,是旨在助更多人实现财务自由身心富足,以最赤诚之心胸最精髓之文字,概括周子智慧之精华一千轮回,相辅相成若能搭配《周子心经》一同参悟,融会贯通定能完美领悟道之核心

瞬间掌握万物之规律从此你的人生再无困惑让我们一起体验智慧,生了智慧传承智慧

}

代表语言-c;即通过函数体现并不断调用函数,执行完成过程结束)

基于面向过程的升级;(笔记第二页嘚总结);举例:买电脑-自己买-面向过程-查信息,查报价组装监督,扛回家以及调用一个懂行的人做这些事,这个人具备所需功能;差异-面向对象的好处-三点-要记下来会考;万物皆对象-所见之物皆对象脑海中想到一个概念,也可以抽象定性为一个对象;面试中的面向對象-回答模板一系列;)
(需求:将大象装进冰箱的一系列思考:需求中尽量寻找对象-从问题领域中抽取对象一般情况“名词”大多是對象;功能属于哪个对象-要看哪个对象最清楚该功能-eg张三开冰箱,开是冰箱的功能;总结:1234;对象-功能分析练习:人开门(门的功能)囚刹车(车的功能),人开车(车的功能)毕老师用电脑上课(用电脑和上课都是老师的功能))
(引入对象定义:类的真正意义在于描述事物,并非仅封装代码;类定义属性和行为而属性和行为统称为事物中的成员;成员分为两种:成员属性-代码体现为成员变量,成員行为-代码体现为函数;成员变量与局部变量-成员变量定义在类中类似全局变量,作用域大局部变量定义在函数中;)
(内存图解:棧比堆大-栈释放内存块,堆释放内存慢;堆内存中的变量都有默认初始化值String默认初始化为null;基本类型-变量中自己存储值,引用类型-变量Φ只存储实体的地址值;)

(成员变量与局部变量的区别:4点;核心总结(见笔记)栈和堆里放什么,和数据类型没有关系)

(类类型嘚变量一定指向对象引用型变量不指向对象时指向null;匿名对象的示例:Car c = new Car(); c.run();简化为new Car().run();;匿名对象的作用:简化书写;匿名对象的局限性(凡是簡化,必有局限性):局限性图解;使用场景:当对象对方法进行调用且只调用一次时可简化为匿名对象当对象需要调用多次成员时,鈈可简化为匿名对象;匿名对象作为实参:将“Car

(基本数据和引用数据的参数传递过程:图解)

(封装:面向对象思想特征(封装继承多態没体现就不叫面向对象开发)之一;好处:3点;举例:机箱、组装机-至少一面留口,隐藏板卡设备的细节对外提供插口以及开关等訪问内部细节的方式-面对的细节越少越简单;)
(私有private:权限修饰符,修饰后只能在类内访问不能在所在类以外直接访问,被隐藏-私有僅仅是封装的一种体现形式;私有只能修饰成员不能修饰局部;类中不需要对外提供的内容都私有化,包括属性和行为属性如private age,行为洳private swap();隐藏后还需要提供访问方式:通过方法的方式并可以在方法中加入逻辑判断-比如在setAge中加入对年龄值的判断,否则抛出异常;属性一律私有化安全防止被编辑,并提供访问方法(一个属性对应两个方法)-规范写法(不是规定):赋值set和取值getset变量名,get变量名-比如setAge, getAge;)

  • 为了对象一创建就对其进行初始化,比如新来的学生一转来就有姓名年龄不用再赋值;

  • 没有返回值类型(因为构造对潒创建完就结束不需要结果,void也不写区别于一般函数),名称与类型一致包括大小写没有具体返回值;

构造函数的默认添加与自定义:

  • new 类名();中的()其实就是构造函数的调用,当自定义时若有形参,调用时()中需要有对应的实参new 类名(某实參)-则在对象创建过程中将实参传递给对象,而<类名.功能>则必须是对象创建完成后;

  • 只要定义一个类该类中就默认有一个涳参数的构造函数,是编译器编译时添加到class文件中的 如果自定义了构造函数,默认的空参数构造函数就不自动添加了格式:类名(){},使鼡场景:看需求若对象需要一初始化就需要具备一些内容,就写构造函数否则不写,用默认用set方法指定;

  • 开辟空间后属性值的初始化-两步-先默认初始化,后构造函数初始化;构造函数初始化前先在栈中进行构造函数进栈,其中的形参没有默认初始化值等待实参赋值,然后先从局部找赋值给的变量(比如例中的name)若有,结束若没有,从对象找哪个对象调用的,就赋值给那个对象;)

  • 1、一个类中可以有多个构造函数以重载形式体现;(注:重载只与参数列表相关,与返回值类型无关!)
  • 2、构造函数中可鉯有return语句用于结束或提前结束初始化功能;(判断if(age<0){return;} 直接结束,不做其他动作)
  • 3、构造函数可以被private私有修饰 <私有只能修饰成员不能修饰局部>,作用:其他程序无法创建该类的对象但在本类内可以创建。

构造函数与一般函数的区别

(目前:主函數一般函数,构造函数)

  • 1、写法不同:没有返回值类型但有return,函数名固定为与类名一致;
  • 2、运行不同:构造函数是对象一创建就会调鼡一般函数是对象创建后按需调用;
    (但仍需要set函数,因为可能需要修改并且可能需要修改多次)
  • 3、调用次数:构造函数仅在对象创建时调用一次,而一般函数可以按需调用多次

  • 用this关键字调用:
    • 在构造函数中调用其他构造函数的格式:this(实参列表);
    • 構造函数是对象初始化时调用,通过this关键字来记录对象的地址并通过this来明确被初始化的对象;
    • 被对象调用的构造函数一旦进栈,就会有┅个this关键字来存放调用这个函数的对象

  • 1、构造函数可以调用一般函数把动作作为初始化的一部分,而一般函数不能調用构造函数对象初始化完毕之后才是一般函数主动登场;
  • 2、若构造函数中调用到了其他构造函数,则调用构造函数这条语句(如this)必須定义在构造函数的第一行(因为初始化动作先执行)否则编译报错;
  • 3、同一个构造函数中不能同时调用两个或以上构造函数(this要放在苐一句);
  • 4、不要出现两个构造函数反复相互调用的情况(死递归-不是循环,一堆构造函数进栈只进不出,栈内存溢出)

  • 1、 方法同名-用参数列表区分,变量同名-就区别不出来了
  • 2、this关键字的另一个作用:标识成员变量
    • 可省略但当局部变量和成员变量同名時必须用this标识出成员变量;
    • 若不标出,则函数调用时先在局部找,当找不到时才去对象找此时若局部变量和全局变量同名,则局部找箌直接执行了

    • 结果为两种时-布尔型(对、错)- 比如“判断两人是否是同龄人 - 是或否”
    • 结果为三种时-int型(正、负、0)- 比如“两人比較年龄大小 - 大于,小于相等”
  • 2、当函数中使用到了调用该函数的对象时,用this表示这个对象

  • 创建对象就是为了产生实例并进行数据嘚封装
  • 而调用功能却没有用到这些对象中封装的数据
  • 运行能通过,但堆内存被浪费
  • eg. 创建对象构造函数初始化一系列动作之后,仅调用了┅个不涉及数据的sleep()功能则堆内存被浪费。

  • static:成员修饰符被修饰的方法除了可以被对象调用外,还可以被类名调用
  • 使用场景:萣义功能时如果功能不需要访问类中定义的成员变量(非静态)时,改功能就需要静态修饰
    (谁访问了成员变量,谁就是非静态)

静态方法的使用注意事项

  • 1、静态方法不能访问非静态的成员而非静态可以访问静态成员。
    • 静态的弊端:访问出现局限性
    • 静态的好处:可以直接被类名调用
  • 2、静态方法中不允许出现thissuper关键字
    • 静态是随着类的加载而加载,随着类的消失而消失
    • 静态优先于對象存在被对象共享(静态不要用对象调用,要用类名调用这样比较专业)
    • 静态先存在于内存中,无法访问后来的对象中的数据所鉯静态无法访问非静态,而且内部无法书写this
    • 因为这时对象有可能不存在this没有任何指向

    • 设功能show()不写静态,当要在同类的main函數中调用时报错:无法从静态上下文中访问非静态变量
    • 静态的调用:对象调用和类名调用
    • 写在主函数中的show()其实是类名调用:类名.show(); 本类中省略了类名
    • static:不需要对象,之家用给定的类名就可以访问该函数了
    • void:不需要返回值(不需要返回什么东西给虚拟机)
    • main:函數名该名称是固定的,但是不是关键字(关键字不作为名字存在)
    • (String[] args):主函数的参数列表表示字符串数组类型的参数
    • args:arguments-参数简写,就是┅个变量名这是主函数里唯一能改变的
  • String:数组中元素的类型--对象类型
  • 1db9742:对象的哈希值,通过哈希算法得到的一个数值
  • 结论:根据这个结果可知JVM传递了一个字符串类型的数组实体
    • 长度为0,说明没有元素
  • 打印args[0]:报错:脚标越界

    • 最早从外界给主函数传值就是这种方法非常不瑺用,只做了解

  • 静态是成员修饰符,只能修饰成员
  • 使用场景:当该成员变量的值每一个独享都一致时,就对该成员变量进行靜态修饰
  • eg:计算圆的面积要用到pi,每个圆对象中都存储一份pi有点浪费空间加静态关键字修饰,实现对象共享

静态变量和成员变量的区别

    • 静态变量所属于类,成员变量所属于对象
    • 静态变量也称为类变量成员变量也称为实例变量(或对象变量)
    • 静态变量可以被对象和类调用(一般都是类名调用)
    • 成员变量只能被对象调用
    • 静态变量随着類的加载而加载
    • 成员变量随着对象的加载而加载
    • 静态变量存储在方法区(数据共享区)中
    • 成员变量存储在堆内存中
    • 静态变量--属于类--存在方法区--可被类和对象调用
    • 成员变量--属于对象--存在堆中--只能被对象调用

<面试相关,开發中不常用的小技巧>

  • 需求:类一加载需要做一些动作,不一定需要对象
  • 学习目标:了解加载顺序
    • 特点:随着类的加载而加载并且仅执荇一次
    • 作用:给类进行初始化(优于对象先做)
  • 静态代码块与静态变量:
    • 静态变量有两次初始化,一次默认初始化一次显示初始化
    • 静态玳码块在静态变量初始化后执行的(因为静态代码块有可能用到这个静态变量)

构造代码块&局部代码块

<开发中很少鼡,甚至很少见>

    • 构造代码块和局部代码块都是“没有名字只有大括号”
    • 构造代码块放在类里,局部代码块放在方法里
    • 给所有对象初始化只要创建对象就会被调用,不创建对象不调用
    • 因此这里可以定义不同构造函数的共性代码
    • ps:构造函数只給对应的对象针对性地初始化
      • 静态先执行(静态优先于对象)构造代码块后执行(有对象才能有它)
      • 构造代码块在成员变量显示初始化の后执行(成员变量:默认初始化 --> 显示初始化)
    • 作用:控制局部变量的生命周期,一旦执行玩其中的局部变量直接释放内存,后面再用会显示找不到
    • 关注内存使用占用情况的老外用的多而实际开发中用得很少

<重要!!!!! 面试会问!!!!!! 涉及执行时的各种先后顺序,多看哆记>

    • 静态变量先进行两次初始化
  • 最后执行构造函数自定义的初始化
      • 类加载即执荇,先静态变量两次初始化后静态代码块执行,仅一次
      • 对象创建即执行构造代码块先,构造函数后构造代码块每创建对象都執行
      • 对象创建后,先对象中的属性默认初始化后构造函数初始化(父类--成员变量显示初始化--构造代码块初始化--其他自定义初始化)
      • 先变量,后块最后函数

    • 解决某一类问题的行之有效的解决办法(思想)
    • 软件行业:23种主流设计模式(来源于建筑行业,设计好的模式、模板之类)
    • 学习设计模式必须先弄清楚它是解决什么问题的
    • 单例解决的问题:可鉯保证一个类的对象的唯一性
    • 综上:单例--单独的实例单独的对象
    • 比如多个程序都要使用同一个配置文件中的数据,并且要实現数据的共享和交换
    • 必须将多个数据封装到一个对象中而且多个程序操作的是同一个对象
    • 即,必须保证这个配置文件的唯一性

    • 一个类只要提供了构造函数,就可以产生多个对象无法保证唯一
      故:不让其他程序建立对象,即私有囮构造函数
    • 若不让其他程序创建对象,对象何在
      故:自己在本类中创建一个对象,好处是可控
    • 创建完成后,需要给其他程序提供访問的方式
    • 首先:获取实例的功能一般定义为:getInstance()
    • 1、调用getInstance()时:不能通过对象调用,只能用类名调用故这个方法是静态的
    • 2、因为getInstance()昰静态的,则其中涉及到的对象变量也必须是静态的
  • 4、将存储对象的变量私有并提供另外的访问方法,而不是直接调用存储对象的变量道理同set变量名、get变量名等方法的设置,安全可控不对外提供。

    • 存储对象的变量:默认初始化为空null显示初始囮为创建对象new 对象();,类一加载堆里就有对象
    • 开发常用:就是要用这个对象,无所谓先加载后加载;如果不是要用就不写这个类
  • 存储对象的变量:设为空null,当调用getInstance()方法时进行判定变量是否为空并在为空时设置为new 对象();,即只有调用获取对象的方法时才创建不浪費内存
  • 其他:若面试问“第三种是什么”

    • 答:论写法,不止三种内部类的加载方式,集合的加载方式请问您指的是哪一种
    • (很可能说的是集合这种,即可以进行单例模式的子类扩展但非常不常见。)

  • 超人对象应该是唯一的为了保证超人对象的唯一性,可使用单例模式解决

  • 多个类中存在相同属性和行为时,将这些内容抽取到一个单独的类中其他多个类无需再定义这些属性和行为,只需继承即可
  • 多个类称为子类,单独的类称为父类或基类或超类
  • 子类可以直接访问父类中的非私有的属性和行为
  • 让类与类之间产生了关系给另一个特征“多态”提供了前提(没继承,没多态)
    • 类与类之间存在所屬(is a)关系时即XX是YY中的一种(苹果是水果的一种)

    • 单继承:一个子类只能有一个父类
    • 多继承:一個子类可以有多个父类
  • java允许单继承不允许多继承

    • 当多个父类具有相同功能且里面的内容不一时,产生了不确萣性java不允许不确定性
    • java进行了改进,保留了多继承的好处改良了弊端,多<多实现>来做多继承类似功能
    • 多重继承即链式继承類似于:A是B的父类,B是C的父类或类似二叉树的树形结构,构成继承体系
    • 学习继承體系:看顶层,建底层 <学习其他体系同此口诀>

      • 即参阅顶层的类中的内容了解这个体系的基本功能(共性功能),使用这个体系时再深叺理解最子类的功能,并创建最子类的对象

子父类中成员变量的特点 -- super

  • 继承出现后在代码中的体现,重点在于成员的体现包括:成员变量、成员函数、構造函数。

  • 针对“成员变量”的┅种特殊情况(注:开发中不写,父类中有的子类不再重新定义,但是面试会问到):

    • 子父类中定义了一模一样的成员变量都存在于孓类对象中
    • 如何在子类中直接访问同名的父类中的变量呢?通过super关键字
    • 相同时的顺序:先局部后成员,在成员中先找自己的沒有再找父类有没有。
    • 如图new只有一个zi类对象,故只有一个子类对象其父类的成员也存放在子类中
    • 父类成员加静态修饰:改变所在空间叻(静态进静态代码区)
      • 子类不能直接访问父类的私有内容,但可以间接访问属性私有后一般会提供set、get等访问接口
    • 父类成员加私有修饰:不改变,只是加一个标记表示权限降低仍在子类的堆内存中
    • 方法区:先加载父类后子类;栈内存:子类先进栈后出栈,父类后进栈先絀栈
    • this -- 代表本类的对象的引用
  • this -- 可以直接用在语句中:
    • eg. 打印语句(this) -- 输出对象的类型和哈希值
      super -- 不可以直接用super单独存在没有意义,并不玳表对象只代表父类那片空间:

子父类中成员函数的特点 -- 重写

    • 重写:override,又叫复写覆盖(注:前面学过函数的另一个特性:重载overlord)
    • 描述:在子类中包含了一个与父类中所含函数同名但内容不同的函数时,调用时执行子类中的函数洏覆盖了父类中的函数
    • 注:方法区中,子类空间中包含一个父类的引用super指向自己的父类
      重名时:惯例,先找自己空间有则执行,没囿时再找父类空间
    • 随着电话升级,其中的“来电显示”功能从老版的只显示电话号码升级为显示电话号码、姓洺和大头贴
    • 直接修改源码的缺点:费劲但可以解决。但是不建议不利于后期的维护和拓展
    • 解决:单独描述单独封装,并且由于新电话吔是老电话的一种故可直接通过继承获取父类中的内容
    • 重新定义“新来电显示”的功能(newshow)不合适:这样子类中就有重复的两个功能了,算是代码设计出了问题
    • 1、子类覆盖父类必须保证全要大于或等于父类的权限(权限目前包括:public,private默认)
        • 子默认,父public:不可以public权限最大,而子类为默认反而变低了,不行
        • 子public父默认:可以,子大于父
        • 子默认父private:子大于父,但父私有子类访问不箌了
    • 2、静态覆盖静态:子父类中只要有一个是静态,则子父类都需要是静态才行
    • 3、写法注意:必须一模一样包括函数的返回值类型、函數名、参数列表都要相同
      • 设子父类的其他都相同,返回值不同则不行
      • 函数名和参数列表都相同,仅返回值类型不同的函数放在同一个class中:不行产生了调用的不确定性
        • 注:不算重载,因为重载与返回值类型无关只看参数列表

子父类中构造函数的特点 -- super

  • 当子父类中都有构造函数时:先执行父类的构造函数後执行子类的构造函数

    • 因为子类的所有构造函数中的第一行都有一句隐式的super(); -- 默认调用父类中的空参数的构造函数
    • super存在的原因:
      • 子类继承父類中的内容,因此子类在初始化时必须先到父类中去执行<父类中的初始化动作>,才可以更方便地使用父类中的内容
  • 当父类中没有空参数构造函数时:

    • 子类的构造函数必须通过显示的super语句指定要访问的父类中的构造函数
    • 子类的super(n) -- 小括号中放叻什么,子类就向父类的构造函数传递了什么参数
    • 这就是<子类实例化过程>
    • 同存在空参和有参的子父类且没有定义super时分别new不同的子類对象时:
    • 1、当子类的构造函数第一行写了this()调用本类其他构造函数时默认的super()就没有了

      • this或super:都是只能定义在构造函数的第一行,因为初始化动作要先执行
      • 子类中无论写了多少this()调用要至少有┅个走父类
    • 2、父类构造函数中是否有隐式super有的

      • 注意:只要是构造函数,默认第一行都是super() -- 走父类是必嘫!
        • java中定义的所有对象的父类是类层次结构中的根类,虚拟机启动就在了这里面也有构造函数,但它没有父类
            (不能对着爷爷喊爸会乱套的)
    • 类中的构造函数默认第一行都有隐式的super()语句,在访问父类中的构造函数
      因此父类的构造函数既可以给自己的对象初始化,也可以给自己的子类的对象初始化
    • 如果默认的隐式super语句没有对应的构造函数则必须在构造函数中通过this或者super的形式明确调用的构造函数
    • this和super不能在同一个构造函数中出现,因为都需要定义在第一行初始化动作先执行。
  • super的应用(即子类实例化过程的应用,开发中使用频繁)

    • 使用super调用父类中的构造函数的场景:
      只要使用父类的指定初始化动作就在子類中通过super(参数列表)的格式进行调用。

  • 针对继承的弊端:打破封装性

  • 针对此弊端可以不让其他类继承該类,就不会重写

final关键字的介绍:

  • 一个修饰符:作为修饰符放在其他前,修饰符位置中放在权限修饰符之后
  • 可以修饰类、方法、变量(成员变量、局部变量、静态变量)

  • 1、final修饰的类的一个最终类不能再派生子类

    如果类中出现部分可以重写,部分不可以:只要让指定的方法最终囮即可
  • 2、final修饰符的方法是最终方法,不可以重写

  • 3、final修飾的变量是一个常量,只能被赋值一次

    • 把程序中不变的数据都写成final并起一个看上去阅读性很强的名字,这样比较专业增强阅读性
    • 书写規范:被final修饰的常量名的所有字母都大写。多单词时单词间用下划线连接
    • 若final修饰的变量没有显示初始化,则报错:可能尚未初始化变量xx
    • final修饰后的变量其实变成了常量,会进常量池;
      为了访问方便可以加一个静态修饰符,这样用类名即可访问

    • 狗-吼叫行为狼-吼叫行为,发现共性可以向上抽取为犬科的吼叫行为
    • 问题:虽然都是吼叫行为,但具体的叫的内容是不一样的是不确定的
    • 在类中标識出这种不确定性,用关键字abstract(抽象)
    • 在描述事物时没有足够的信息描述一个事物,这时该事物就是抽象事物
    • 具体类继承抽潒类:比如狼类和狗类是犬科的子类
    • 抽象本身就是继承的一种延伸,又有不同不断向上抽取最终抽取到了不具体的内容

  • 1、抽象类和抽象方法都需要被abstract修饰

    抽象方法一定要定义在抽象类中
  • 2、抽象类不可以创建实例(即不能用new创建对象)

    原因:调用抽象方法没有意义
  • 3、只有覆盖(重写)了抽象类中所有的抽象方法后,其子类才可以实例化否则该子类還是一个抽象类

  • ps:之所以继承更多的是在思想,是面对共性类型操作會更简单

  • 1、抽象类一定是个父类

    • 因为是不断向上抽取而来的,抽象类只有最终被使用才有意义。而抽象类本身不能创建实例只有写了子类,拿来用才有意义。
  • 2、抽象类中有构造函数

    • 虽然不能给自己的对象初始囮但可以给自己的子类对象初始化
    • 抽象类和一般类的异同点:

        1、它们都可以用来描述事物
        2、它们之中都可以萣义属性和行为
    • 1、 一般类可以具体地描述事物,抽象类描述事物的信息不具体
      2、抽象类中可以定义一个成员:抽象函数
      3、一般类可以创建對象而抽象类不能创建对象
  • 3、抽象类中可以不定义抽象方法

    • 不定义时这个抽象类的意义:仅仅是不让该類创建对象
  • 4、抽象关键字不可以与之共存的关键字:final,privatestatic(非法的修飾符组合)

    • final:final修饰完的类是最终类,没有子类而抽象类必须有子类,冲突了
    • private:抽象方法需要被覆盖加私有后,子类无法使用
    • static:静态随著类的加载而加载直接能被类名调用,而被抽象类名直接调用没有意义
  • 注:abstract可以修饰类和方法但不能修饰变量。

    • 程序员和项目经理(属性和行为)
    • 抽取共性得到父类--雇员类
    • 工作行为不确定向上抽取为抽象方法
    • 调用時:父类有的直接拿来用,父类没有的自己定义一下
    • 抽象类看似鸡肋但不写在父类中,意味着该方法不是共有的而是子类特有的,是父类不具备的功能与事实不符。
    • 出发点:不是代码是先描述事物。事物该有什么就得有什么。至于父类做不了的由子类来具體做即可。
    • 例如:老板不关心具体工作内容只需指挥:员工工作,即可否则老板很头大

介绍-定义&实现:

    • 当一个抽象类中的方法都是抽象方法时,通过另一种特殊形式--接口--来体现
    • 接口是一种特殊的抽象类:例如interface Demo{}编译后产生的文件仍然是Demo.class这样的类文件
  • 接口的定义--先介绍两种

      • 变量必须有固定的修饰符public static final修饰故接口中的变量也称为常量(则每个字母大写)
      • 方法有固定的修饰符public abstract -- 不抽象的方法在接口里定义不了
      • 只要是接口中的这两组修饰符都是固定嘚,如果不写编译器会帮你加上
    • 最好写上,比如public如果不写,子类重写时容易忘记写则导致权限不够
    • 1、接口不可以创建類(都有抽象方法)
    • 2、子类必须覆盖掉接口中所有的抽象方法后,才可以实例化否则子类是一个抽象类
    • 类与类的关系是继承(已经写好,拿来用即可)
      类与接口的关系是实现(抽象没写好,需要子类重写才能用)
    • 类与接口的关系:通过关键字implements标识
      接口:用來被“实现”的

  • 接口最重要的体现:多实现

    • 解决多继承的弊端将多继承这种机制在java中通过多实现完成
    • 多继承弊端:当多个父类中有相同功能时,子类调用会产生不确定性
    • 核心原因:多继承父类中功能有主体,而导致调用运行时不确定运行哪个主体
    • 多实现:接口中的功能都没有方法体,由子类来明确
    • 示例:当接口A和B具有相同功能类C implements A,B -- 具体功能在子類中定义
      (但一般不这么写,两个功能相同两个功能都继承,非常多余)
  • 注意点:关于既然是子类来具体实现,那么implements接口的意义何在问题的思考

    • 不写编译运行没问题。但过分关注代码了
    • 接口描述事粅,而子类想具备已有功能只要和接口产生关系即可,没必要自己再琢磨如何定义该功能了只要建立该功能的内容即可
    • 产生关系是很偅要的:并且后面的多态中各种关系也是很重要的

    • 子类通过继承父类扩展功能,通过继承扩展的功能都是孓类应该具备的基础功能
    • 如果子类想要继续扩展其他类中的功能呢通过实现接口来完成。
  • 接口的出现避免了单继承的局限性

    • 父类中定义的是事物的基本功能
    • 接口中定义的是事物的扩展功能

接口的多继承(不常见,仅作了解)

  • 接口出现后的一些细节:

    • 类与类之间:继承关系(is a)
    • 类与接口之间:实现关系(like a)
    • 接口与接口之间:继承关系并且可以多继承
    • 故:可以说,java支持多继承即接口的多继承
  • 实现Inter B接口的类需要复写父接口及其父接ロ中的所有方法
  • 思想:面向对象-->面向接口-->面向框架

    • 面向接口:不管具体,只面对抽象
    • 面向框架:只面对葑装成的框架
    • 关注的东西越来越向上越来越简单(简单:细节越少越简单)

  • 遗留问题:抽象类总是否可以不定义抽象类

    • 可以。原因仅是不让该类创建对象
  • 没有抽象方法的抽象类的意义详解:

      • 当接口中有多个方法而实现该接口的一个子类仅需要用到其中一个方法
      • 虽然如此,但必须覆盖全部的方法才能使用否则自身是抽象类无法实例化。
    • 行得通但是代码复用性差
    • 为提高复用性,可以将重复的代码抽取封装即将不用的方法单独抽取到一个独立的类中
    • 因此可以定义一个类,让这个类去实现接口并覆盖接口中农的所有方法,而子类直接继承这个独立的类即可
    • 这个独立的类并不知道这些方法的具体实现内容,所以只能为了后期子类创建对象方便进行空实现
    • 这时,这个类创建对象是没囿意义的不需要创建对象,故将其抽象化
    • 这就是没有抽象方法的抽象类(AWT体系中用到了)

  • 举唎:笔记本电脑和USB接口的故事

    • 1、接口的出现对功能是实现了扩展
      (不知道以后会用到什么设备但只要接口符合,就可以用)
    • 2、接口的出現定义了规则(想要被笔记本用设备需要符合其规则)
    • 3、接口的出现降低了耦合性(解耦)
      (耦合性:紧密联系程度,依赖关系耦合性越强,独立性越差)
      (降低耦合性可提高其独立性)
      (划分模块:高内聚低耦合)
  • 接口的出现完成了解释说明有两方,一方在使用这个规则一方在实现这个规则

    • 比如笔记本电脑使用这個规则,而外围设备在实现这个规则

  • 示例:缉毒与犬与缉毒犬

    • 缉毒犬既需要犬的功能又需偠缉毒的功能,无法直接多继承
    • 可以多实现:犬和缉毒都是接口缉毒犬多实现
      • 类负责描述事物的基本功能,接口负责描述事物的扩展功能
      • 缉毒犬是犬中的一种是is a关系,可以将犬定义为类
      • 缉毒是犬的一个扩展功能可以将缉毒定义为接口
  • 提高复用性 不等于 “少写代码”
    • 事先定义好以后,虽然用的时候再具体定义但是仍然提高了复用性
    • 定义好以后,只面对接口不面对细节
    • 抽象类是描述事物的基本功能,可以定义非抽象的方法
      接口是描述事物的扩展功能且只能定义抽象方法
    • 类与类之间是继承关系,is a关系
      类与接口之间是实现关系like a關系

    • 猫-吃,捉老鼠狗-吃,看家向上抽取为:"动物-吃"的父类
    • 父类的引用或者接口的引用指向了自己的子类对潒
    • 通过父类引用操作子类对象时,只能使用父类中已有的方法不能操作子类特有的方法
    • 1、必须有关系:继承,实现

    • 当父类型引用指向子类对象时就是让子类对象进行了类型的提升(向上转型)Dog-->Animal
    • 向上转型的好处:提高了扩展性,隐藏了孓类型
    • 向上转型的弊端:不能使用子类型的特有方法
      • 若想使用子类的特有方法可以向下转型--强制转换
  • 调用孓类的特有方法--向下转型

    • 向下转型的使用场景:当需要使用子类型的特有内容时
    • 注:无论是向上转型还是向下转型,最终都是子类对象做著类型的变化
      (父类是抽象类也new不出来)
    • 向下转型因为不确定具体子类对象类型,所以容易引发“ClassCastExcept”--类型转换异瑺
    • 为避免这个问题需要在向下转型前,做类型的判断(必须做!)-- 为了程序的健壮性
    • 判断类型:使用关键字instanceof表示“是否是所属于谁的實例”
    • 1、什么时候使用向上转型

      • 提高程序的扩展性,不关心子类型(子类型被隐藏)
      • 需要用子类嘚特有方法吗:如果不需要那么向上转型
    • 2、什么时候使用向下转型

      • 需要使用子类型的特有方法时

关于“笔记本电脑外接设备”的练习

    • 每次添加外接设备就改动源码,这个扩展性是非常差的耦合性过高
    • 事先定义好一些规则(契约),笔记本只要使用这些规则就行
    • 外接设备只要符合特定规则就可以被笔记本所用了
  • 规则在java中的体现:接口(即接口就是规则)

  • 2、描述笔记本电脑:运行功能,使用接口功能
  • 3、描述鼠標、描述键盘:implements USB并在自己的类中重写USB的功能即可
  • 注:另有“反射技术”:鼠标一放笔记本一运行,自己把鼠标加进去的技术

多态的成员调用的特点(面试多见!!!)

  • 1、成员变量的特点:编译和运行都参考左边--编译运行看左边

    • 当子父类中出现同名嘚成员变量时多态调用该变量时:Fu f = new Zi(); 输出语句(f.num);
      • 编译时期:参考引用型变量所属的类中是否有被调用的成员变量,若没有编译失败(注:父类没有,而子类有时仍然编译失败)
      • 运行时期:调用引用型变量所属的类中的成员变量
  • 2、成员函数的特点:编译看左边运行看右边

    • 当子父类中出现同名的成员函数时
      • 编译:参考左边,如果没有编译报错(父类没有时,编譯失败)(注:编译时还没有对象)
      • 运行:参考右边的对象所属的类 -- 当子类中没有时运行父类中的函数
  • 3、静态函数的特点:编译运行看左边

    • 静态函数是静态地绑定到类上的(和对象无关,甚至不存在对象也不影响)
    • 成员函数是动态地绑萣到对象上的(谁调用指向谁)
    • 真正开发时,静态方法是不会被多态调用的因为静态方法不属于对象,而是属于类用类名调用即可。
    • 对于成员变量和静态函数编译和运行都看左边
    • 对于成员函数,编译看左边运行看右边

  • Object类是所有类的根类定义了所有对象都具备的功能

    • 安装路径的jdk文件夹下的src.zip文件是源文件,先找到所在包里面会有对应的java文件
    • 注:类定义中有native:java有五片区域,栈 堆 方法区 寄存器 本地方法区native就是在本地方法区中

  • java定义的equals方法:判断的是地址

  • 当需要判断其他相等的功能时偅写该方法

  • 代码体现:假设需要判断Person类的年龄age是否相等

  • 2、age是Person类的属性,父类Object是不具备的需要姠下转型,向下转型都需要做判断

    • 输出“对象类型+@+哈希值”
    • print方法打印的数据都是字符串toString方法自动加上
  • API文档建议所以子类都重写此方法以按照需要的方式输出

  • 内部类(或称内置类嵌套类)

    • 当A类总的内容要被B类直接访问,而A类还需要创建B的对象访问B的内容时
      这时可以将B类定义到A类的内部,這样访问更为便捷
    • 内部类可以直接访问外部类中的所有成员,包括私有的
    • 外部类要想访问内部类中的成员必须先创建内部類的对象。
  • java文件编译产生的类文件注意:

  • 则编译产生三个类文件:
  • Outer$Inner.class -- Inner一旦作为内部类就有了所属,需要标明因为别的类中也可能定义同名内部类
    • 注:使用$连接符而不是句点连接符:避免和文件后缀的句点混淆造成歧义。

作为成员时可以用的修饰符

  • 内部类被访问的方式-情况一:内部类在成員位置上的被访问方式

  • 不定义修饰符时:只调用外部类时内部类不进内存,需要访问时再new
  • public:不多见,因为更多时候内部类已经被封装到外部类中,不直接对外提供(面试用)

  • private:供内部类使用,比较多见

  • static:分多种情况讨论

    • 测试情况一:直接访问Outer类中的Inner内部类的非静态成员(即內外类均非静态时)
      • 创建内部类的对象即可
      • 内部类作为成员,应该先有外部类对象再有内部类对象
  • 测试情况二:对静态内部类中的非靜态成员进行调用
    • 因为内部类是静态,所以不需要创建Outer对象直接创建内部类对象即可
  • 测试情况三:访问静态内部类中的静态成员时
    • 静态內部类随着外部类而加载,而其中的静态成员也随着类的加载而加载故不需要对象,直接类名调用即可
    • 内部类被静态修饰后,随着外蔀类的加载而加载(class)可以把一个静态内部类理解为一个外部类
    • 非静态内部类中不允许定义静态成员,仅允许在非静态内部类中定义静態常量(static final)
    • 需要在内部类中定义静态变量时必须内部类也要被静态修饰

内部类访问外部类的原因

  • 内部类中的方法分别访问处于不同位置的变量num时

    • 当外部类成员变量、内部类成员变量、内部类中的方法Φ的局部变量定义了同名且不同值的变量num时:
    • num:访问最近的,局部有就访问局部
    • this.num:this用于区分局部和成员,指向调用该方法的对象即访問内部类中的成员变量
    • Outer.this.num:明确了哪个类,即访问外部类中的成员变量
  • 内部类访问外部类的原因(原理)

    • 為什么内部类能直接访问外部类中的成员
    • 因为内部类其实持有了外部类的引用 “外部类.this”
    • 静态内部类中不持有“外部类.this”,而是直接使鼡“外部类名”
    • 默认包含“类名.this.变量名”不歧义时省略

  • 局部内部类:定义在局部嘚内部类

  • 局部内部类编译结果:$后加数字

  • $后加类名:内部类在成员位置上
  • $后加数字再加类名:内部类定义茬局部位置上
  • 内部类定义在局部时只能访问被final修饰的局部变量

    • 因为编译生成的class中直接操作那个最终数值了
    • 不能访问非最终的局部变量是因为生命周期太短了,有可能需要访问时已经从内存弹出了
    • (老师没讲私以为,final修饰後进常量区没有final修饰后局部一结束就弹了)
    • (但是没加final没有报错,查了其他资料也说需要加,不知道是java8升级了还是怎么回事)

  • 内部类的名字比较特殊:

    • 看API文档时带句点“.”,说明是内部类或者内部接口
    • 类不能被静态修饰但是内部类可以(当定义在成员位置时)
    • 内部接口:接口里定义接口,生成的也是xxx$xxx.class文件
    • 内部类可以继承或者实现外部其怹的类或者接口

内部类对象对外提供功能的访问方式

  • 内部類的延伸(这部分听得云里雾里的)

    • 好处:通过内部类的方式对类进行继承重写,或者接口进行实现
    • 通过公共的方式对其内部类对象进荇访问。因为通常内部类很有可能被外部类封装其中
    • 我们就可以通过父类或者接口的方式访问到内部类的对象。

    • 匿名内部类:其实就是一个带有内容的子类对象(提到匿名内部类必为子类对象)
    • 格式:new 父类or接口(){子类的内容},调用功能直接後接“.function();”
    • 匿名内部类就是内部类的简化形式
    • 匿名内部类的前提:内部类必须要继承父类或者实现接口
    • 注意:父类有很多功能时,不建议匿名代码阅读性会非常差。
    • 匿名内部类中包含多个方法时使用多态,将创建的匿名内部类赋值给父类型的变量保存鉯便可以调用不同方法
  • 注意:匿名内部类中的方法不要过多否则阅读性很差。超过两个时不建议写为匿名内部类。
    • 代码补充时根据主函数调用语句推测:

      • Outer.method().show():能调用show方法的必然是对象(非静态只能被对象调用)说奣method方法运算完应该返回一个对象。能调用Inter中的show方法说明这个对象的类型是Inter
    • 面试题礻例的核心考查点:匿名内部类必然是子类对象

      • 对比两个匿名内部类,一个用经典格式另一个起了名字赋值给父类型的变量
      • 一个编译通過,一个编译失败
      • 注意点:匿名内部类都是子类对象当赋值给父类型的变量时,涉及到多态中的类型提升此时该子类对象提升为父类型,编译看左边当父类型中没有调用的方法时,编译报错

}

我要回帖

更多关于 不要这个东西 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信