Java学习思考题

本文介绍了提升开发效率的一些Java编程快捷键,如全局搜索、代码查找、文件操作等。此外,详细解释了重写、重载的概念及其规则,以及抽象类、接口的区别,还有上转型和下转型的概念,以及如何自定义Java异常。
摘要由CSDN通过智能技术生成

1.是否在学习过程中学到了一些idea的快捷键的使用方法以此提升开发效率?

双击Shift    全局搜索

Ctrl + F   在指定区域内、光标区域内搜索

Alt + F7  查看变量,方法被引用的所有地方

Ctrl + E   显示最近打开的文件列表

Ctrl + 点击一下文件   关闭文件

Ctrl + Shift + E   打开最近关闭的文件

Ctrl + /   注释行

Ctrl + Shift + /   块注释

Ctrl + W   选中当前单词或代码块。

Ctrl + Shift + W   取消选中代码块

Ctrl + C   复制

Ctrl + V   粘贴

Ctrl + Y   剪切

Alt + Insert   生成代码,例如getters和setters、构造函数等。

Ctrl + Z   撤回一步

Ctrl + Shift + F10   运行当前文件

Ctrl + Shift + F9   调试当前文件

Ctrl + W   选中当前单词或代码块。

Ctrl + Shift + W   取消选中代码块

Alt + F7   在当前文件中搜索

Ctrl + R   文件内搜索

Ctrl + Shift + R   在所有文件中搜索

Alt+Up 、 Alt+Down   可在方法间快速移动

Ctrl+D   复制上一行或复制选定

Ctrl+O   可以选择父类的方法进行重写

Ctrl+F12   可以显示当前文件的结构

2.重写的规则,重载的规则

重写是子类对父类的允许访问的方法的实现过程进行重新编写,其规则有:

1.子类方法的名称和参数列表必须要一致

2.子类方法的访问修饰符不能比父类方法的访问修饰符更严格,比如父类修饰符是public,子类不能申请为protected(public>protected>default>private)

3.父类的成员方法只能被它的子类重写。

4.声明为 final 的方法不能被重写;声明为 static 的方法不能被重写,但是能够被再次声明

5.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常

6.子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法;子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法

重载是指在同一个类中定义多个方法,它们具有相同的名称但参数列表不同(参数类型、数量或顺序不同)。其规则有:

1.要重载的方法必须具有相同的名称

2.重载的方法必须具有不同的参数列表,包括参数类型、数量或顺序的不同

3.重载方法的返回类型可以相同也可以不相同

4.重载方法的访问修饰符可以相同也可以不同

5.被重载的方法可以声明新的或更广的检查异常

3.是否能够区分重写和重载

区别点重载重写
参数列表必须修改一定不能修改
返回类型可以修改一定不能修改
异常可以修改可以减少或删除,一定不能抛出新的更广的异常
访问修饰符可以修改一定不能做更严格的限制(可降低限制)

4.抽象类的特点有哪些

1.抽象类不能被实例化,即不能用new创建一个新对象,其只能被继承

2.抽象类中的方法只有声明没有实现

3.抽象类不可以与private、static、final关键字共存

4.子类继承抽象类后看,必须实现或重写抽象类中所有抽象方法,否则子类仍未抽象类

5.抽象类中有构造函数,用于给子类初始化

5.接口和类的区别

                             类                          接口
关键字是class关键字是interface
可以实例化对象无法实例化
类只能单继承接口可以多继承
可以继承另一个类不能继承一个类
使用extends关键字继承使用implements由类继承,extends由接口继承
可以包含构造函数不能包含构造函数
不能包含抽象方法仅包含抽象方法

类中变量和方法可以使用任何修饰符(public、private、default、protected)

接口中的所有变量和方法都声明为public

6.抽象类和接口的区别

抽象类关键词是abstract,接口的关键词是interface

接口中只能包含抽象方法,而抽象类既可以包含普通方法也可以包含抽象方法

接口中不能定义静态方法,而抽象类可以

接口中不包含构造器,而抽象类有。抽象类中的构造器不是用于创建对象,而是让子类调用这些构造器来完成属于抽象类的初始化工作

接口是行为的抽象,是一种行为的规范,接口是like a 的关系;抽象是对类的抽象,是一种模板设计,抽象类是is a 的关系

7.什么是上转型,什么是下转型

上转型是指将子类对象赋值给父类引用变量。在向上转型过程中,子类的特殊属性和行为会丢失,只能访问父类公共属性和方法。

下转型是父类引用变量转换为子类引用变量。下转型类似于该子类直接继承父类。

public class Vehicle {
    public void honk() {
        System.out.println("Vehicle honks");
    }
}  
public class Car extends Vehicle {  
    public void honk() {  
        System.out.println("Car honks");  
    }  
    public void drive() {  
        System.out.println("Car drives");  
    }  
} 
public class Test {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.honk();//输出“Vehicle honks”
        //上转型
        vehicle = new Car();
        //此处虽然调用的是父类的方法,但是输出的是子类重写后的方法
        vehicle.honk();//输出“Car honks”
        //下转型
        Car car = (Car) vehicle;
        car.honk();//输出“Car honks”
        car.drive();//输出“car drives”
    }
}

8.如何在Java中自定义一个异常类

用户自定义异常,只需要继承Exception类就可以了。

public class MyCustomException extends Exception{
    private String message;

    public MyCustomException(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public static void main(String[] args) {
        try {
            throw new MyCustomException("This is a custom exception");
        } catch (MyCustomException e) {
            System.out.println(e.getMessage());  // 输出 "This is a custom exception"
        }
    }
}
总共11页 一万字左右 皆为个人上课整理笔记。 贴上前几道整理题以作预览 1、 缩写JDK的含义是什么。 JDK 是Java开发工具包 (Java Development Kit ) 的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。要成为一名程序员,JDK是一种最基本的工具。 (JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。) 2、 解释Java语言跨平台的技术基础。 因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。 3、 什么是Java语言的自动垃圾收集。 4、 说明J2SE、J2ME、J2EE各自的含义。 J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发 J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发 J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发 J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。 5、 Java的包是什么含义,有哪些作用。 包就是用来装不同java源文件和类文件的文件夹。 作用有两个:一个是防止重名现象,还有一个是隐藏具体实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值