JAVA期末复习

本文详细介绍了JAVA编程的关键知识点,包括this关键字、传值与传址、类的封装、数据类型及其转换、静态关键字Static的使用、装箱与拆箱、继承特性、异常处理机制、多线程设计以及字符串和输入输出流的相关内容。对于理解和掌握JAVA编程有重要作用。
摘要由CSDN通过智能技术生成

1、this关键字的使用

当方法的局部变量和类的成员变量重名的时候,根据“就近原则”,优先使用局部变量。
如果需要访问本类当中的成员变量,则需要使用this.成员变量。
通过谁调用的方法,谁就是this。

2、传址与传值

public class Main {
   
    int i=5;
    void action(Main m){
   
        i=m.i;
    }
    public static void main(String[] args) {
   
        Main m=new Main();
        Main m2=new Main();
        m2.i=7;
        m.action(m2);
        System.out.println(m2.i);
        System.out.println(m.i);
    }
}

输出:7、7
对象作为参数传递的是地址。

3、类的封装

限定词 同一个类 同一个包 不同包子类 不同包非子类
priviate
无限定词
protected
public

4、数据类型

标识符

在java语言中,标识符必须以字母、下划线_、美元符$开始的字符序列。
变量:一个数据类型包括数据类型和标记符两个部分。
如:int ans。

自动类型转换

在这里插入图片描述 当byte,short,char之间进行运算时,会先转换为整型然后进行运算,运算结果也为整型。

5、静态关键字Static

修饰成员变量

利用static来声明一个变量可以在多个实例间进行共享,这种变量称为类变量或静态变量。
故在方法中不能定义static变量,因为在方法中定义的局部变量被方法封装了起来,通过类名无法访问到。

修饰成员方法

同静态变量一样,被static修饰的成员方法也可通过类名进行访问。
对于本类当中的静态方法,可以省略类名称。
静态方法可以使用直接引用类的其他静态成员(包括变量和方法),但是不能直接使用非静态成员,先有的静态才有非静态。

6、基本数据类型的装箱与拆箱

八大基本数据类型与其对应包装类

基本数据类型 对应包装类
bool Boolean
byte Byte
short Short
int Integer
char Character
long Long
double Double
float Float

装箱与拆箱

拆箱:对象转换成基本数值

装箱:基本数值转换成对象

7、继承

继承的特性

子类拥有父类非 private 的属性、方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

子类可以用自己的方式实现父类的方法。

Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

构造函数不能被继承!!!

final关键字

修饰类:该类没有子类。
修饰方法:该方法不能被子类重写,但可以被正常使用。
修饰局部变量:只要在具体被使用之前进行赋值即可,一旦赋值,不能进行修改。
基本数据类型:初始赋值后不能被修改
引用数据类型:初始化之后不能在指向另一个对象,但对象的内容是可以变的;

super关键字

在构造方法中默认存在着super()作为第一语句。
 super关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。

重写

定义:子类对从父类继承过来的方法进行改写。
注意点:
子类方法的返回值必须小于等于父类方法的返回值。
子类方法的权限必须大于等于父类方法的权限范围。

8、抽象类与抽象方法

抽象类:

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。故抽象类不能被final修饰。

在这里插入图片描述

抽象方法

如果一个类包含抽象方法,那么该类必须是抽象类。
任何子类必须重写父类全部的抽象方法,或者声明自身为抽象类。

9、接口

JDK7以前,接口中只能定义全局常量和抽象方法

//接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
public interface Inter {
   
    public abstract void run();
    public static final int maxn=100;
    //全局常量  public static final可进行省略,可直接通过接口.调用
    void eat();//一定为public abstract 故可进行省略
}

接口与类的区别:
①接口中所有的方法必须是抽象方法。
接口中成员变量默认修饰符public static final,全为常量
接口不是被类继承了,而是要被类实现。
接口没有构造方法和实例对象
接口支持多继承。

10、==与equals方法

java中所有的类都是Object类的子类,都有equals方法。而在Object中定义的equals方法都是进行地址值的比较.
但其中一些子类如String,Integer,Date等已经对继承过来的equals进行了重写(一般重写成比较成员值是否相同)。

StringBuffer没有对equals进行重写,比较的是地址。

==的比较

基本数据类型:比较是否相同
引用数据类型:比较地址值是否相同

equals方法

引用类型:默认情况下,比较的是地址值,重写该方法后比较对象的成员变量值是否相同

字符串池与字符串的创建

String s1=
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值