知识点总结

类和对象的关系:

类(class)是对象(object)的模板、原型;而对象是类的一个实例。

类的定义:

public class 类名称 {
    构造方法;
    变量定义及初始化;
    方法定义;
}

构造方法:

1.构造方法是一种与类同名的特殊方法,每个类都有构造方法;

2.构造方法不定义返回任何数据类型,连void都不许有!也没有return语句;

3.如果不显式定义,则使用的是缺省构造方法,它是一个无内容的空实现的构造方法;

4.构造方法的作用:初始化该类的一个新的对象,定义一些初值或内存配置工作;

5.构造方法可重载:根据参数的不同决定执行哪一个。

this关键字

this关键字本质上就是当前类类型的引用变量,当不同的对象调用同一个方法时,由于调用方法的对象不同导致this关键字不同,从而this.方式访问的结果也就随之不同。

(1)若在构造方法中出现了this关键字,则代表当前正在构造的对象。

(2)若在成员方法中出现了this关键字,则代表当前正在调用的对象。

  • 当局部变量与成员变量相同时,在方法体中会优先使用局部变量(就近原则),若希望使用成员变量,则需要在成员变量的前面加上this的前缀,明确要求该变量是成员变量。

  • this关键字除了可以通过this.的方式调用成员变量和成员方法外,还可以作为方法的返回值。

  • 在构造方法的第一行可以使用this()的方式来调用本类中的其他构造方法。

static

1.非静态方法可以访问静态方法或者静态属性

2.静态方法不能访问非静态属性和方法

使用static关键字来修饰属性,表示这个属性是类级别的。

static修饰的属性和方法、访问方式: 类.static属性名 类.static方法名

在同一个工程中允许存在相同名称的类,只要处在不同的包中即可。 避免了类型之间命名冲突:包作为一种封装,给类提供多层命名空间 。

⭐类变量和实例变量的区别是:

(1)存放位置:

类变量随着类的加载而存在于方法区中。

实例变量随着对象的建立而存在于堆内存中。

(2)生命周期:

类变量生命周期最长,随着类的消失而消失。

实例变量生命周期随着对象的消失而消失。

抽象类:

abstract class 类名{
    属性;
    修饰符 abstract 返回类型 方法名();
}

⭐抽象类用abstract修饰。

抽象方法:

abstract returnType abstractMethod ( [paramlist] ); 
  • 抽象方法只有声明,不能有实现{},连空方法都不行,用于被子类重写

  • 定义了抽象方法的类必须是抽象类。

  • 抽象类并不是一定要有抽象方法

特性:

  1. 使用abstract关键字修饰,并且一般包含抽象方法(允许不包含,实际意义角度来看一般要包含)!

  2. 抽象方法使用abstract修饰,是行为的“抽象定义”无方法体,不同子类有不同实现(多态);

  3. 抽象类不可实例化,构造器主要是被子类调用;

  4. 抽象类如果继承一个抽象类或者实现接口,但没有完全实现抽象方法,则必须定义为抽象类;

  5. 抽象类可以包含static成员(因为和实例无关)

接口:

interface 接口名[extends 接口列表]{
    属性;
    修饰符 返回类型 方法名();
}

抽象类和接口的比较:

抽象类接口
是一个类,abstract class定义interface定义,底层本质是一个特殊的类,
抽象类中可以有成员变量只可以有常量(默认使用public static final修饰)
抽象类可以有构造方法(给子类的构造函数调用)接口中不可以有构造方法
不能实例化,要被继承extends不能实例化,要被实现implements
抽象类中可以有成员方法接口中只可以有抽象方法
类只能单一继承(因为容易存在来源歧义,尤其是属性)接口可以多重继承(不容易有歧义)
可以有多种修饰符接口中只能有public修饰符(不写的话会被默认)
继承抽象类,强调是一种的关系 is-a实现接口:强调功能具有 has - a 的关系

匿名内部类:

匿名的内部类由编译器产生一个数字作为其标识符:外围类的名字+$+数字

  1. 匿名内部类只能也必须(有且仅有)继承一个抽象父类或者实现一个接口,也可以重写父类普通方法;

  2. 匿名内部类不能是抽象类,因为定义匿名内部类时立即生成对象,而抽象类不允许生成对象;

  3. 常用形式:创建某个接口/抽象类的对象,没有显式子引用,必须马上使用,一般作为参数直接传递;

  4. 匿名内部类没有类型,所以不能显式定义构造器,有一个隐式的无参构造器;可以有初始化块以初始化对象,以弥补没有构造器的缺陷;

  5. 在匿名内部类和局部内部类中被访问到的局部变量。

String常用方法

1)int length();//输出长度
2)char charAt(int index); //下标为第几位上的是什么
3)int indexOf(String sub);//下标的位置
4)int lastIndexOf(String sub);//下标的位置  
5)int campareTo(String ath);//比较两个字符串第一个字符的ASCII 的距离  
6)String concat(String oth/);//或者+号拼接之后的内容  
7)byte[] getByte();//有重载方法!/把每个字母相应的ASCII存入到数组
8)char[] toCharArray();//把每个字母存入到数组
9)String toLowerCase(); //转换为小写类型10) 
10)String toUpperCase();//转换为大写类型     
11)String replace(char achar,char ncahr); //替换单个字符    
12)String xeplaceAll(String regex,String nchar);//替换多个字符
13)String[] split(String regex); //切割字符串      
14)substring(int start,int end);//从下标几开始取几个数   
15)startsWith(String str);//判断是否首位     
16)endsWith(String str);//判断是否尾位   
17)eguaIslgnoreCase();//区分大小写比较内容 
18)String trim = " aa ".trim();//去除字符串左右的空格    
19)equals();//区分大小写比较内容    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值