第四次学习总结

toString方法

在用户自定义类中重写toString方法,否则去负累寻找会指向引用地址。

二.equals方法比的是指向地址

X.quals(y)String类中已经重写了equals方法,重写比较的是内容是否相等。
  public void fun1() {
    System.out.println("方法一");
  } 
  public void fun2() {
    System.out.println("方法2");
  }
}
class B1 extends A1{
  public void fun1(){
    System.out.println("重写A1的方法1");
  }
  public void fun2(){
    System.out.println("重写A1的方法2");
  }
}
class D1 extends Object {
  private int age ;
  private String name;
  public D1() {
    // TODO Auto-generated constructor stub
  }
  public  D1(String name,int age) {
    this.name = name;
    this.age = age;
  }
  //比较两个对象的内容是否相等 重写object 的equals方法
  @Override
  public boolean equals(Object obj) {
    D1 d1 = null;
    if (obj instanceof D1) {//如果传进来的对象是D1的子类那么就对属性做比较
      d1 = (D1) obj;
      if (d1.name == name && d1.age == age) 
        return true;
      else 
        return false;
    }else 
      return false;
  }

三.多态性

多态的体现:1.一个行为的多种表示形式,

从方法角度来看1.重载2.重写

2.从对象角度来看

1.向上转型:父类对象=子类实例,若是子类重写父类的某个方法,则调用的是重写后的方法。

2.向下转型:

 Person per=new Student();

Student stu=(Student)per;

Stu,learn();

四.instanceof 关键字:判断一个对象是否属于一个类的实例

格式:对象  instanceof +类

五.Final 关键字

1.final修饰变量,则成为常量,只可以修饰一次,修饰成员变量时,需给出初始值,修饰局部变量,不做要求。

2.final修饰方法,则不可以被重写。

3.Final修饰类,则不可以被继承。

六.抽象类与接口

1.用abstract修饰的类即为抽象类

  abstract class 抽象类名{

  }

  

抽象类不能被实例化,必须被继承,抽象方法必须被重写,生成它的子类。

2.抽象类不一定要包含抽象方法,若类中包含了抽象方法,则该类必须被定义为抽象类

如果一个子类没有实现抽象父类中所有的抽象方法,则子类也成为一个抽象类。

3.抽象父类中的抽象方法必须被非抽象子类继承。

七.接口

1.接口(interface)是抽象方法和常量值的定义的集合。

接口是一种“标准”、“契约”。

完整的接口声明:

[public] interface 接口名称[extends listOfSuperInterface] {  …  }

2.具有 publicabstract属性

3.实现格式:

class 子类 implements接口A,接口B{

}

4.非抽象子类必须实现接口中定义的所有方法

5.接口中所有的方法都是public abstract

在接口中声明方法时,不能使用staticfinalsynchronizedprivateprotected等修饰符。

一个接口可以继承自另一个接口。

package interfacedemo2;

 

public abstract class Walkl{

    public void walk();

}

 

package interfacedemo2;

 

public abstract class Animal {

 

}

 

 

package interfacedemo2;

 

import interfacedemo.*;

 

public class Dog extends Animal implements Walk{

 

@Override

public void walk() {

System.out.println("小狗散步...");

}

 

}

 

 

 

 

 

 

 

 

 

 

 

八.基本数据类型的包装类

基本数据类型

包装类

byte(字节)

java.lang.Byte 

char(字符)

java.lang.Character 

short(短整型)

java.lang.Short 

int(整型)

java.lang.Integer

long(长整型)

java.lang.Long 

float(浮点型)

java.lang.Float

double(双精度)

java.lang.Double

boolean(布尔)

java.lang.Boolean

 

Integer  a=100;

Int a=5;

String str=123;

Syso(str+5);

 

 

九.字符串相关类

1.String:字符串本身内容不可改变,字符串常量池在堆内存

2.String两种实例化方式

A.直接赋值法:String str=hello  world

B.常规赋值法:String str=new String(hello)

字符串时String中的一个匿名对象,在堆内存中开辟了空间,但是在栈内存中没有引用指向。

 

 

十.String类常用方法

1.publica  String (byte[]  byte)

使用平台默认解码,将字节数组转换为字符串

2.publica  String(byte[] bytes,Charest charest)

使用指定字符解码

3.publica  char CharAt(int index)

根据索引位置获取字符串中某个字符

4.public  boolean contains(CharSequence s)

判断当前对象

5.publica boolean equals(Object anobject)

判断字符串内容是否相等

6.public  byte[]  getBytes()

将字符串转换为字节数组

7.publica  int  index(String str)

返回字符串在当前字符中的索引位置

8.publica  int  Lastindex(String str)

从后往前找

9.Public  int  length()

返回字符串长度

10.publica  String toLowerCase,  toUpperCase()

小写,大写

11.Public  char[]  toCharArray()

转换为字符数组

12.publica String  substring(int beginIndex)      (int beginIndex,int endIndex)

截取,                 从开始至末尾       从开始至endIndex-1

13.publica  String trim()

返回删除前后空格的字符串

14.publica  String[] splist(String regx)

通过指定正则表达式拆分字符串,返回拆分后的字符串

 

 

 

十.StringBuffer

String类不同在于它是个可变对象,而且线程安全,先构建16字符的初始容量,若超出,先扩建容量

 

 

十一.StringBuilder类,与StringBuffer类功能相同,只是线程不安全

 

十二.内部类

在类的内部定义另一个类。如果在类Outer的内部再定义一个类Inner,此时Inner就称为内部类,而Outer则称为外部类。

内部类的定义格式

Public   class  外部类{

     Public  class  内部类{

内部类在编译完成后也会产生.class文件,而文件名称则是”外部类名称$内部类名称.class

 

好处:

1 可以方便地访问外部类的私有属性

2 减少了类文件编译后的产生的字节码文件的大小

 

缺点:使程序结构不清楚

 

十三.成员内部类

成员内部类中不能定义static变量

成员内部类持有外部类的引用

在文件管理方面,成员内部类在编译完成后也会产生.class文件,而文件名称则是”外部类名称$内部类名称.class

外部实例化成员内部类的格式:

 外部类.内部类  内部类对象=外部类实例.new 内部类();

 

 

 

十四.静态内部类

如果一个内部类使用static声明,则此内部类就称为静态内部类,其实也相当于外部类。可以通过外部类.内部类来访问。

静态内部类不会持有外部类的引用,创建时可以不用创建外部类对象

静态内部类可以访问外部的静态变量,如果访问外部类的非static成员变量必须通过外部类的实例访问

外部实例化静态内部类对象的格式:

外部类.内部类  内部类对象= new  外部类.内部类();

 

十五.局域内部类

局域内部类是定义在一个方法中的内嵌类,所以类的作用范围仅限于该方法中,而类生成的对象也只能在该方法中使用。

   局域内部类不能包含静态成员

   特别注意:局域内部类要想访问包含其的方法中的参数,则方法中的参数前必须加上final关键字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值