【无标题】

1.this的作用:

    –this表示的是当前对象本身,即this代表当前对象的一个引用。

    –但是this不是固定不变的,它会随着执行环境的改变而改变。

2.在方法中this表示该方法所属的对象;单独使用this表示全局对象;在函数中this表示全局对象(但在严格模式下,this 是未定义的);在事件中时this又表示接收事件的元素。类似call()和apply()方法可以将this引用到任何对象。

3.普通方法中使用this时一是区分类成员属性和方法的形参;二是调用当前对象的其他方法(这时的this可以省略);位置任意。

4.在构造方法中使用this表示使用this来调用其它构造方法,这时要注意 位置必须是第一条语句。

5.this不能用于static方法。

▪static 关键字

1.用static声明的成员变量称为静态成员变量,又叫类属性、类变量。它属于类,是所在类的公用变量,可以被被该类的所有实例共享,被载入时显示初始化。在该类static成员变量只会有一份并且被该类的所有对象共享。

2.一般都用"类名.类属性"来调用。使用"对象.类属性"也可以调用。static变量是置于方法区中的

用static声明的方法为静态方法

3.不需要对象,就可以调用(类名.方法名)在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员(这就解释了this为什么不能用于static方法),静态方法不能以任何方式引用this和super关键字。

静态变量不静态方法又称为类变量和类方法

▪代码块

1.概念:使用{}括起来的代码被称为代码块。

2.分类:根据位置可分为:

    –局部代码块 –构造代码块

    –同步代码块 –静态代码块

普通代码块:直接在方法或语句中定义的代码块,不能单独存在必须要紧跟在方法名后面,同时也必须要使用方法名调用它。

局部代码块:局部位置,限定当前变量的声明周期,可以提高内存利用率。

构造代码块:直接写在类中的代码块,它可以给所有对象进行初始化,每次调用构造方法都会执行,并且在构造方法前执行。

静态代码块:使用static声明的代码块,在类的成员位置,用static{} 只有在类加载的时候,才会执行,且只执行一次,且由于是在类加载时才会执行,所以甚至先于main方法前执行(是在类初始化时执行,不是在创建对象时执行。静态初始化块中不能访问非static成员)。

同步代码块:使用 synchronized 关键字修饰,并使用"{}"括起来的代码片段,它表示同一时间只能有一个线程进入到该方法块中,是一种多线程保护机制。

 

▪方法调用中的参数传递几个重要点:基本数据类型的参数传递:不能改变参数的值;引用数据类型的参数传递:不能改变参数的值。

 

▪pakage

1.作用:可以解决类之间的重名问题。且便于管理类可以让合适的类位于合适的包中。

2.package通常是类的第一句非注释性语句。包名:域名倒着写即可,再加上模块名,并不内部管理类。

3.com.gao和com.gao.car两者不是包含关系,是两个完全独立的包,从逡辑上看起来后者是前者的一部分。

▪Import

    有利于利于编写和维护。通过import可以导入其他包下面的类,从而可以在本类中直接通过类名来调用。

▪import static

    静态导入,作用:用于导入指定类的静态属性。

    导入:import com.bjsxt.oop.*;

    静态导入:(导入Math类的PI属性)import static java.lang.Math.PI;;之后我们可以在程序中直接使用:System.out.println(PI);

 

▪面向对象的三大特征

1.继承 inheritance

    –继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为

    (子类可以从父类继承属性和方法,子类可以提供自己单独的属性和方法,子类可以直接访问父类中的非私有的属性和行为)。

    –继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object,所以object相当于是祖先类。

    –继承提高了代码的复用性,让类与类之间产生了相关的联系(多态的前提)。

    –Java只支持单继承,不支持多继承,Java支持多层(多重)继承(继承体系)。

2.封装/隐藏 encapsulation

    –封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

   – 封装的好处:

        让我们可以修改我们自己写的实现代码,而不用修改那些调用我们代码的程序片段;

        隐藏类的实现细节,对外隐藏某些属性和方法;

        能实现对成员变量进行更精确的控制;

        适当的封装可以让我们的程式码更容易理解与维护,也加强了程式码的安全性。

        对每个值属性提供对外访问的公共方法,即创建赋值取值的方法,以此来让外部程序对类中的私有属性进行访问。

3.多态 polymorphism

    –为了适应需求的多种变化,变得更加使代码通用。就比如当一个操作在不同的对象时,会产生不同的结果,所以多态又是同一个行为具有多个不同表现形式或形态的能力。

    –多态具有消除类型之间的耦合关系、可替换性、可扩充性、接口性、灵活性、简化性。多态好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

    –多态存在的三个必要条件:继承、重写、父类引用指向子类对象:Parent p = new Child();

 

    ▪面向过程只有封装性(功能的封装,而没有数据的封装),没有继承和多态

 

    我们程序设计要追求"高内聚,低耦合"。

 

    java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。

如果导入两个同名的类,只能用包名+类名来显示调用相关类:

java.util.Date date = new java.util.Date()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值