java杂记

   7  23

public表示公开的,是可以在所有的包中进行方法

protected受保护的,可以在同一个包中以及不同包中的子类

java中修饰属性的默认权限修饰符时default只能在同一个包中的其他类来进行访问

private 只能在本类中进行方法


在构造方法中调用其他构造方法是不能直接通过方法名来调用,可以使用this


方法的重载,同一个类中允许出现多个同名方法,但是方法中的参数列表不尽相同
1  参数个数不同
2  参数类型不同
3  参数类型的顺序不同


局部变量使用前需要赋初始值

所谓的封装是指将该类的属性私有化,并提供相应的公开的 方法,不让直接通过对象,属性的方式直接访问该类的属性 ,而是通过提供的方法来进行访问。、


23种设计模式
单例(单态),工厂,构造器 ,代理

                           7 24

在子类的构造方法中第一行默认会有一个super(),该super是可以调用父类的构造方法的。

在构造方法中也可以通过this()的方法来调用本身自己的其他构造方法。

[[  如果this和super都用了  ]],那么原来默认的super无效,且不能调用父类的构造方法,但是在子类的所有的构造方法中必有一个是通过super来调用父类构造方法的


如果父类中没有默认的无参构造方法,那么在子类的构造方法中必须通过super显示的来调用父类
而且super中的参数列表必须和父类中的参数列表保持一致

在子类和父类的构造方法中不能相互调用对方的构造方法

通过super()的方法调用父类的构造方法只能在子类的构造方法中使用,不能在普通方法中使用。

在子类的方法中可以直接使用super.的方式来调用父类的方法和属性

子类是不能通过super来调用父类的私有属性和私有方法的。

生命周期

  父类的static属性和代码块
  子类的static属性和代码块
  父类的实例变量,初始化块
  父类的构造方法
  子类的实例变量,初始化块
  子类的构造方法

重写,在子类中定义和父类方法名相同,返回值类型相同,参数列表相同的方法叫做方法的重写
重写时,需要注意,子类重写后的方法不能比父类有着更加严格的访问权限。只能大于或等于父类的访问权限。

重写后,通过子类对象调用的是子类重写后的方法,如果没有重写,默认调用父类中的方法

抽象类也是有构造方法的,而且该构造方法在每次实例化子类对象时调用

虽然抽象类不能直接实例化对象,但是我们可以通过NEW抽象类创建一个默认继承该抽象类的一个匿名内部类对象。


在java中只支持单继承,没有多继承。
在java中,如果一个类没有明确的继承关系,那么该类默认继承Object.

用final修饰的方法,子类是无法进行重写的。

如果子类不能重写该方法,那么子类在调用时就只能使用父类中的方法。

抽象方法是不能用final进行修饰的,抽象方法主要是被实现的,如果被final修饰,就不能进行重写,也就无法进行实现。


                                   7         25

   在给方法传参时,如果参数类型是一个父类类型,那么可以在调用该方法时直接将子类对象传递过去。


通过多态可以将子类对象当做父类类型的一个对象来调用,但是这样就会造成该对象无法调用原来类中自己定义的方法,只能调用重写父类中的方法。

判断对象是否是某一个类的方法:
          1.   instanceof  判断对象是否是某一个类的实例 返回值是true或false
          2。通过class获取该对象的实际类名,对象.getClass().getName()返回的值是当前对象所对应的真实类名(包名.类名)


                                   7          26


接口是一种纯粹的抽象类,接口中的方法默认是抽象方法
接口的作用,主要是用于规范标准

接口之间可以继承,如果一个类继承了一个有父接口的接口,那么需要重写接口中和父接口中所有的抽象方法

一个类只能继承一个父类,但是可以实现多个接口
类和父类之间的关系是继承的关系:is a
类和接口之间是实现的关系:has a

     1.  如果一个类实现了多个接口,而且多个接口中有两个或两个以上的相同定义的抽象方法,那么该类所重写的方法是直接实现的那个接口
     2.implements后面最近的优先级越高


  多态的第二种体现形式,将实现类的对象定义为接口类型

如果实现类中有接口中没有定义的方法,那么通过多态后的对象不能调用这个方法。

通过new接口的形式可以创建一个默认实现该接口的匿名内部类对象,该匿名内部类默认实现了接口中所有的抽象方法。

可以将该匿名内部类对象通过多态定义成一个接口类型的对象,然后就可以直接通过  对象.方法  来进行调用。

在类中如果将一个方法定义为静态方法,那么该类的子类是不能重写该静态方法的。

在类中如果将一个方法定义为静态方法,这种叫静态方法绑定,该类的子类对象是可以直接通过对象名来调用父类的静态方法的。

在接口中用static修饰的方法叫做接口的静态方法,也就是通过static将该方法绑定到接口上

如果该接口有实现类,那么该实现类对象不能直接通过    对象名.方法   来调用接口中的静态方法。
只能通过     接口名.静态方法    来调用。


异常
异常主要分为两大类,一是运行时异常()
                               二是检查时异常

处理多种异常的方法,
1.用多个catch语句块进行处理
2.使用一个catch语句块直接处理总异常
3.使用逻辑“|”运算符

创建自定义异常的步骤
1.创建一个类,去继承Exception或Exception的子类
2.在自定义异常类中的构造方法里通过super()将异常信息传递给父类
3.使用时直接throw

                                7    27

ani.getClass
ani.getClass.getName
ani.getClass.get
ani.getClass
ani.getClass

将基本数据类型转化为对应的封装类
1.通过封装类的构造方法  int i=100;Integer inte= new Integer(i);
2.通过封装类的valueof方法 Integer inte1=Integer.valueof(i)

将封装类转换为基本数据类型
用封装类型的对象,调用对象XXXvalue

将封装类型转换为string,直接通过封装类对象调用trString()即可

将字符串转换为封装类

将基本数据类型转化成字符串
1.通过类型的自动提升用“+” string str3=" "+i;
2.通过string的valueof方法转换

将string类型转换成基本数据类型
string str5="10010";
通过基本数据类型所对应的封装类的parseXXX()
int i= Integer.parseInt(str5)

在类中定义多个内部类时,在编译后生成多个的Class文件,一个是外部类的class,余下是内部类的class
成员内部类,定义在外部类背部,外部类方法体外面的内部类叫做成员内部类(定义的位置和成员变量的位置相似)

内部类和外部类之间的关系不是继承关系,是所属关系,内部类是外部类的一个成员

在成员内部类中是不能定义静态的变量和方法的

内部类可以直接使用外部类的方法和属性

成员内部类可以定义抽象方法

在局部内部类中只能访问所在方法中的常量。

如果要在局部内部类中

在静态内部类中只能访问外部类的静态成员


创建匿名内部类的形式
1.
2.通过new一个接口,可以创建一个默认实现该接口的匿名内部类对象

如果该匿名内部类对象要多次调用可以通过多态技术,将该对象定义为它的父类类型。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值