Java程序设计

主讲教师: 林川 / 厦门工学院

第0期
开课时间:
教学进度:
  • 预报名
  • 进行中
  • 已结束

学时安排:64学时

学分:4分

Java的使用越来越广泛,企业级Java应用已成为主流,安卓开发大量使用Java。本课程不仅包含讲授理论的视频,还包含在线编程练习。从理论与实践两个方面带领学生进入Java面向对象编程世界。本课程每章均有章节测验,并提供完整课件的下载,方便自学。课程中的丰富资源可为教师开展SPOC教学提供有力支撑。
  • 0

    累计页面浏览量

  • 0

    累计选课人数

  • 0

    累计互动次数

2024-03-02 19:18 林川 厦门工学院 在Java程序设计课程中提问:

思考:说说DAO模式

DAO模式是接口的一个典型应用。 1.尝试用几句话说说DAO模式的好处。实现了什么与什么的分离? 2.使用搜索引擎搜索关键字"Java DAO",选出几句对你来说最有用的语句。尝试使用自己的话总结DAO模式的好处。 3.可选:编写一些DAO接口的代码。

  • 04-17 17:05 余建宏

    应该是业务逻辑与数据结构的分离吧,好处是单独封装了各个对象,保证了代码的可读性与健壮性,后期测试的话也可以相对简单一点直接一个注解Text就可以完成测试
  • 查看全部(1条)

2024-03-02 19:04 林川 厦门工学院 在Java程序设计课程中提问:

思考:Comparable接口与Comparator接口的区别

1.Comparable与Comparable接口都可以实现对象之间的比较。那他们之间的区别是什么? 2.可选:尝试使用代码说明他们之间的区别。

  • 04-17 16:51 余建宏

    一个应该算一种API吧,可以把原先不可以排序的集合或者数组进行排序比较,而接口是直接赋予了一整个类都可以进行比较的能力;.Comparable是只能赋予一个,而接口是可以赋予一个类里面所有方法
  • 查看全部(1条)

2024-03-02 19:04 林川 厦门工学院 在Java程序设计课程中提问:

练一练:Comparable接口

阅读如下代码: 回答: 1.如果想对薪水进行降序排序怎么做? 2.执行 Arrays.sort(staff)进行排序时,对象之间是如何比较的? EmployeeSortTest.java源代码: import java.util.*; /*

  • 04-17 16:47 余建宏

    把 compareTo里面的两个if语句的返回值颠倒一下
  • 查看全部(1条)

2024-03-02 19:19 林川 厦门工学院 在Java程序设计课程中提问:

思考(可选):Cloneable接口

1.对String[] arr = {"a","b","cdef"}调用clone()方法能否实现arr数组的深拷贝?为什么? 2.尝试使用代码进行验证

  • 04-17 16:44 余建宏

    应该是不能的,因为String是不可变的,而clone方法针对于数组而言是根据原数组的模板来创建一个新的模板,相当于地址的指向与原数组相同,但String是不可变的类型,所以会导致地址出现异常
  • 查看全部(1条)

2024-03-02 19:00 林川 厦门工学院 在Java程序设计课程中提问:

思考:什么时候使用static?

1. 定义类的时候,什么样的方法和属性应该声明为static,什么样的方法和属性不声明为static? 2. Person类的name、age、getAge等是否应该声明为static? 3. 为什么String的valueOf方法声明为static,而substring方法不声明为st

  • 03-22 21:24 吴婧琳

    1. 当属性为所有对象共享、不依赖具体实例时,方法不依赖实例、仅与类相关或为工具方法时,应声明为static;若属性是对象特有状态,方法需访问实例属性或方法,不应声明为static。

    2. Person类的name、age、getAge通常都不应声明为static,因它们是对象自身属性或依赖对象实例。

    3. valueOf是不依赖具体String实例的工具方法,所以声明为static;substring需从已有String实例提取子串,依赖实例内容,所以不声明为static。
  • 查看全部(2条)

2024-03-02 19:00 林川 厦门工学院 在Java程序设计课程中提问:

练一练:static关键字

1.代码阅读: class Circle{ private static int id = 1; private double radius = 0; public Circle(double r){ radius = r; }

  • 03-22 21:23 吴婧琳

    1. show方法中System.out.println(radius);(2)会出错,因为radius是实例变量,show是静态方法,静态方法不能直接访问实例变量。

    2. this代表当前对象,static方法不依赖特定对象,无“当前对象”,所以static方法内不能用this。
  • 查看全部(2条)

2024-03-02 19:00 林川 厦门工学院 在Java程序设计课程中提问:

练一练:编写Circle类并分享你的代码

编写Circle类,包含radius(半径)属性和一些常用方法,如getArea、getRadius。 1. 增加一个无参数构造方法(函数)Circle()。设置radius的值,然后控制台输出“调用无参数构造方法”。 2. 增加一个有参数构造方法Circle(double radi

  • 03-22 20:07 张锶妍

    public class Circle {
    // 半径属性
    private double radius;

    // 无参数构造方法
    public Circle() {
    this(1.0); // 调用有参构造方法
    System.out.println("调用无参数构造方法");
    }

    // 有参数构造方法
    public Circle(double radius) {
    this.radius = radius;
    System.out.println("调用有参构造方法");
    }

    // 初始化块
    {
    System.out.println("初始化块执行");
    }

    // 获取半径
    public double getRadius() {
    return radius;
    }

    // 设置半径
    public void setRadius(double radius) {
    this.radius = radius;
    }

    // 计算面积
    public double getArea() {
    return Math.PI * radius * radius;
    }

    // 主方法,用于测试
    public static void main(String[] args) {
    // 测试无参数构造方法
    Circle circle1 = new Circle();
    System.out.println("半径: " + circle1.getRadius());
    System.out.println("面积: " + circle1.getArea());

    System.out.println();

    // 测试有参数构造方法
    Circle circle2 = new Circle(5.0);
    System.out.println("半径: " + circle2.getRadius());
    System.out.println("面积: " + circle2.getArea());

    System.out.println();

    // 删除无参数构造方法后,尝试创建无参对象
    // 这里只是注释掉无参数构造方法的代码,实际运行时需要删除
    /*
    Circle circle3 = new Circle();
    System.out.println("半径: " + circle3.getRadius());
    System.out.println("面积: " + circle3.getArea());
    */

    System.out.println();

    // 测试初始化块的执行顺序
    Circle circle4 = new Circle(3.0);
    }
    }
  • 查看全部(2条)

2024-03-02 19:00 林川 厦门工学院 在Java程序设计课程中提问:

思考:对象的初始化

1.构造方法有什么用?一般在构造方法中编写什么代码? 2.如果一个类有多个构造方法,创建对象时怎么确定调用哪个? 3.任何一个类都有无参数构造方法吗?一个类不编写构造方法可以吗? 4.新建对象,初始化块先执行还是构造方法先执行? 5.为什么有构造方法可以进行初始化工作,还需要

  • 03-20 21:43 吴婧琳

    1. 构造方法作用:创建对象时初始化,给成员变量赋值,new时自动调用,确保对象可用。常编写属性赋值及相关初始化代码,如连接数据库等。

    2. 多构造方法调用确定:Java依创建对象传入参数,找类型和数量匹配的构造方法,无匹配则编译错。

    3. 无参构造方法与不写构造方法:类未显式定义构造方法,编译器提供默认无参构造,将属性初始化为默认值。类可不写构造方法,用默认无参构造(无其他构造时)。

    4. 执行顺序:新建对象,初始化块先执行,再执行构造方法。初始化块类加载时执行,用于通用初始化,构造方法创建对象时调用。

    5. 初始化块优势:可在多构造方法间共享代码,避免重复。且类加载时先于构造方法执行,适合类加载阶段的初始化。
  • 查看全部(2条)

2024-03-02 18:55 林川 厦门工学院 在Java程序设计课程中提问:

思考:循环的使用

1.一般来说什么时候使用for什么时候使用while?试举例说明 2.for循环与while循环可以相互转换吗?试举例说明 3.while(true){.........}与for(;;){.....}都是死循环,计算机会不断执行循环体中的东西。这样的代码有意义吗?试举例说明

  • 03-06 16:30 王瑞

    1;for 循环通常用于已知循环次数的情况,while 循环适用于循环次数未知,而是根据某个条件来决定是否继续循环的情况。
    2;可以
    3;
  • 查看全部(2条)

2024-05-18 19:34 林川 厦门工学院 在Java程序设计课程中提问:

思考(可选):Collections

1. Collection与Collections有什么区别? 2. Arrays与Collections有什么区别?

常见问题

  • 1.我该如何学习这门课程?

    (1)首先您要注册一个学银在线的账号。

    (2)您需要有一定的上网条件,能够流畅的观看教学视频。在观看的过程中,您可以选择在PC端登陆我们的网页, 也可以选择下载我们的app学习通,通过手机客户端来学习。

    (3)您一旦报名选择了课程,我们的课程主讲老师或课程团队会通过通知的形式给您发送课程有关的消息,同时会抄送您的邮箱,请您及时查收。

  • 2.我在学习过程中遇到问题了,怎么办?

    您可以通过以下几种方式获取帮助:

    (1)在课程群聊中发布求助信息,说不定和你一起学习这门课的小伙伴就能够解决你的问题呢;

    (2)在课程讨论区留言,课程团队看到后将会及时回复。

    (3)联系我们的客服,或者随时给我们发邮件,邮箱地址:xueyinkf@chaoxing.com。

  • 3.我是新手,能否给我一些学习建议?

    (1)我们的课程采用MOOC的方式授课,因此您可以自由安排您的学习时间、学习地点。但我们仍旧希望您每周能都有固定的时间持续进行本课程的学习,根据人的记忆曲线显示这种规律的学习方式能够最大限度的提升您的学习质量。

    (2)学习的过程比较容易,为了检验您的学习成果,我们的课程团队会在课程章节结束后布置测验或作业,希望您尽可能的按时独立完成。如果有没有掌握的知识点,您可以继续回看复习课程。

    (3)希望您能够积极参与课程的讨论,与各位学习者一起煮酒论英雄。在讨论的过程中,不光可以对课程所学内容温习内化,还能互相碰撞出思想的火花,相信您一定会有额外的收获。

  • 4.课程会不会很难、很枯燥?

    (1)我们的课程都是老师经过精心设计拍摄制作而成,并且由于是MOOC的方式,所以课程拆分成了不同的知识点,学习起来一点也不费劲。

    (2)我们的课程多采取理论结合实际的授课方式,课程中也有许多案例的呈现,相信会给学习者带来诸多方面的启发。我们也将力求做到深入浅出,支持学习者将研究发现转化为实践,改进自身教学。