关于我在Java学习中遇到的问题与心得体会

一、开发中遇到的问题

1.开发时效率低下:

我使用的是IDEA这个软件,我在编写构造方法等方法的时候纯手打,没有注意有快捷生成这种东西,为了解决这个问题,我在网上搜索到IDEA的方法生成快捷键,即Alt+Insert,按了这个键之后,点击想要生成的方法,选择想要生成的代码即可;

2.引用方法错误

我在做抛出异常的实训练习时,引用别的类的方法出现了报错,我不知道如何引用其他类的静态方法,于是我网上搜索,得出解决这个问题的两种方式,1是在要使用的方法所属的类上的main方法中使用这个静态方法,2是在方法名的前面加上该方法所属的类名,

例如图中的第6行的test就是一个静态方法,这个方法在ExceptionTest类,我想引用他,就得在"test"前面加上"ExceptionTest."这些字符,就能引用完成静态方法;

3.输入带有构造方法的实例化字符

我在其他类定义了一个带有构造方法的类,我想用Scanner输入这个实例化的类,但是我不知道该如何输入,于是我网上带着问题问AI问到了,应该定义一个变量(例如radius)作为中转,例如:Double  radius= sc.NextDouble(),然后再实例化那个类的构造方法:Circle a1 = new Circle(radius);这样就可以实现这个功能;

总结:遇到问题要及时解决不要拖延,可以网上问AI或百度,也可以问身边懂的人

二、我的做得比较好的项目解析

1.我的项目:水电费计算

课程中我做的水电费计算项目是(如下图)

我开始做这个抽象类项目的时候,我做的第一步是

(1)创建1个抽象类,并且抽象类的格式应该是这样(带括号的字可忽略不计)
public abstract class ElectricityCharge(类名){

}

大括号里面是写代码的区域,抽象类与普通类不同的是,它在"public"(修饰符)和"class"之间需要加上一个"abstract",当然这个public也可以改成其他修饰符,看具体情况使用

(2)定义成员属性(用电量)、定义成员方法、定义构造方法(含参数的和不含参数的)
public abstract class ElectricityCharge {
    protected double yongdian;
    public abstract void jisuan();
    public ElectricityCharge(double yongdian) {
        this.yongdian = yongdian;
    }
    public ElectricityCharge(){}
}
(3)创建与编写子类:

子类名字格式应该是这样(中间写代码):

extends的意思是继承某个类,extends的后面跟着的字符串指的就是要继承的类

继承了这个类就可以使用该类的成员属性以及成员方法等

public class ElectricityChargeOfRain extends ElectricityCharge{

}

下面我这是我写完的代码,我写了这个类的构造方法,super(yongdian)指的是将父类的构造方法传过来,便于子类的构造方法实例化后定义参数的值

public void jisuan()指{}的是重写父类的抽象方法

如果父类(抽象类)定义了一个抽象方法,那么如果有继承他的子类,就必须重写父类的抽象方法

下面是具体计算电费和计算好之后输出结果代码

public class ElectricityChargeOfRain extends ElectricityCharge{
    public ElectricityChargeOfRain(double yongdian) {
        super(yongdian);
    }

    public ElectricityChargeOfRain() {
    }

    public void jisuan(){
        double dianfei = 2.25*yongdian;
        if(yongdian>200){
            System.out.println("在丰水期该用电量的电费为:");
            System.out.println(dianfei=2.25*200+(yongdian-200)*0.9);
        }else {
            System.out.println("在丰水期该用电量的电费为:");
            System.out.println(dianfei);
        }
    }
}

另一个要做的类也和这个同理

然后我们创建一个测试类,将要实现功能的类实例化

即"类名 实例名 = new 类名(参数);"

之后如果要调用类的方法,就用"实例名.成员方法();"即可

所以计算出丰水期300度电费为540元,枯水期230度电费为613元,这个项目就完成了

三、java中比较容易混淆的概念解析:

在Java中,有几个概念容易让人混淆。以下是一些常见的混淆点和解析:

  1. 抽象类与接口
    • 抽象类abstract class)可以包含抽象方法和非抽象方法,它不能被实例化,需要被子类继承才能使用。子类必须实现所有抽象方法,可以选择性地重写非抽象方法。
    • 接口interface)只能包含常量和抽象方法,它可以被类实现(implements),一个类可以实现多个接口但只能继承一个抽象类。Java 8之后,接口可以包含默认方法和静态方法的实现。
  2. 继承与实现
    • 继承extends)是指一个类(子类)可以派生自另一个类(父类),并且继承父类的字段和方法。Java中,一个类只能直接继承一个类,但可以实现多个接口。
    • 实现implements)是指一个类实现一个接口,它必须提供接口中声明的所有方法的实现。
  3. 静态方法与实例方法
    • 静态方法static方法)属于类本身而不是实例,可以直接通过类名调用。它们不能访问非静态的类成员,也不能使用 this 关键字。
    • 实例方法是属于对象实例的方法,可以访问类的所有成员,包括静态和非静态成员。

四、常见bug和异常解决方法

1.没有使用main方法导致代码报错

main方法是代码的入口,想要实现功能就得在main方法里调用

IDEA内在某代码行输入main快速生成main方法

然后把想要实现的代码放进去即可

2.因少写了大括号导致报错

在指定红色标点区域放置大括号即可

3.代码的后面没有写分号(;)

同理,在红色标点区域加上分号即可

五、Java学习心得与经验分享

1.如何使用中文汉化过的IDEA软件
(1)打开IDEA代码界面、找到图片中的按键并打开

(2)找到Setting按键并打开

(3)点击Plugin(插件)按键并在搜索栏输入"Chinese"搜索中文汉化插件,找到第二个(带有'汉'这个图标的)点击勾选

(4)勾选后点击OK,然后重启软件即可汉化IDEA了

2.代码快捷输入字符串
System.out.println();

输入sout按回车键即可

    public static void main(String[] args) {
        
    }
输入main按回车键即可
3.AI辅助指导编写代码

可以将你的代码交给AI,让AI来指出你的代码中哪里有不足之处,也可以把你的需求交给AI,让AI帮你编写代码,但是要自己理解这些代码,而不是在课程中用AI做题,做完了就得过且过。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值