Java程序设计

主讲教师: 郑如滨 / 集美大学

教学进度:
  • 预报名
  • 进行中
  • 已结束

学时安排:56学时

学分:3.5分

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

    累计页面浏览量

  • 20304

    累计选课人数

  • 23786

    累计互动次数

2023-02-13 19:08 郑如滨 集美大学 在Java程序设计课程中提问:

思考:循环的使用

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

  • 2023-06-29 11:29 郑文博

    1.for循环:可以知道并限定循环的次数,条件较少时使用;
    while循环:不知道循环次数,但条件多时适合使用。
    2.可以转换。
    3.有。可以一直输入,简便快捷,如Windows系统等待指令。
  • 查看全部(11条)

2023-02-13 19:04 郑如滨 集美大学 在Java程序设计课程中提问:

思考:怎么学习Java?

看了前面课程对Java的介绍,你觉得? 1. Java学习主要包含哪几部分? 2. 学习Java只是看看视频、做做客观题就行了吗?还需要做些什么? 3. 你学习Java是为了做什么?(企业级应用、手机APP、桌面应用、其他)

  • 2023-06-29 11:28 郑文博

    1. 阅读Java书籍:可以选择一本经典的Java编程书籍,通过阅读书籍的方式来学习Java开发知识。好的Java书籍可以提供全面的Java基础知识和实际开发经验,为学习者提供有益的指导。
    2. 手动编写代码:在学习Java编程的过程中,最好自己动手尝试编写代码。可以从简单的程序开始,并逐渐增加代码的复杂性。这样可以帮助学习者更深入地理解Java编程语言和编程概念。
    3. 观看在线视频教程:现在有很多优秀的在线视频教程,这些教程可以为初学者提供更直观、更生动的学习方式。可以选择一些认可的教学视频,并跟随视频进行学习。
  • 查看全部(19条)

2023-02-13 19:12 郑如滨 集美大学 在Java程序设计课程中提问:

练一练:使用instanceof筛选对象

建立一个Object数组,里面可以存储各种各样的对象,也可能包含null,编写一个方法,将其中的String对象抽取出来,并打印。 分享你们的代码。 Test.java源代码: package shapes; public class Test { publi

  • 2023-06-23 14:11 陈奕纯

    public void printStrings(Object[] objects) {
    for (Object obj : objects) {
    if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str);
    }
    }
    }
  • 查看全部(3条)

2023-02-13 19:12 郑如滨 集美大学 在Java程序设计课程中提问:

练一练:继承与多态

1.编写一个方法,将任意类型对象的hashCode中@之前的部分截取出来 2.编写一个方法可以将一组Shape类型对象的周长加总求和并返回 3.编写一个方法double getRadius(Shape s),将s的半径(只能是圆形)取出来并打印。提醒:涉及到类型的判断。

  • 2023-06-23 14:11 陈奕纯

    public String getHashCodePrefix(Object obj) {
    String hashCode = Integer.toHexString(obj.hashCode());
    String[] parts = hashCode.split("@");
    return parts[0];
    }
    public double getTotalPerimeter(Shape[] shapes) {
    double totalPerimeter = 0;
    for (Shape shape : shapes) {
    totalPerimeter += shape.getPerimeter();
    }
    return totalPerimeter;
    }
    public double getRadius(Shape shape) {
    if (shape instanceof Circle) {
    Circle circle = (Circle) shape;
    return circle.getRadius();
    } else {
    throw new IllegalArgumentException("Shape is not a circle");
    }
    }
  • 查看全部(4条)

2023-02-13 19:11 郑如滨 集美大学 在Java程序设计课程中提问:

练一练:equals方法

1. 新建Person对象(Person p = new Person()),使用System.out.println(p)打印Person对象。思考:这段代码调用的是p所指向对象的哪个方法? 运行如下代码,分析运行结果: String str1 = new String("

  • 2023-06-23 14:10 陈奕纯

    1. 新建Person对象(Person p = new Person()),使用System.out.println(p)打印Person对象。思考:这段代码调用的是p所指向对象的哪个方法?

    这段代码调用的是Person类中的toString方法。当我们使用System.out.println(p)打印一个对象时,实际上是调用了该对象的toString方法。如果该对象没有重写toString方法,则会调用Object类中的toString方法。

    运行如下代码,分析运行结果:
    String str1 = new String("123");
    String str2 = new String("123");
    System.out.println(str1.equals(str2));

    2. String的eqauls方法与Object中的equals方法一样吗?哪里一样?哪里不一样?

    String类中的equals方法与Object类中的equals方法不完全相同。它们都是用来比较两个对象是否相等,但是String类中的equals方法比较的是字符串的内容,而Object类中的equals方法比较的是两个对象的引用是否相等。因此,如果我们需要比较两个字符串的内容是否相等,应该使用String类中的equals
  • 查看全部(2条)

2023-02-13 19:11 郑如滨 集美大学 在Java程序设计课程中提问:

练一练:设计一个Triangle三角形类与Shape形状类,并用UML类图进行描述

1.试设计一个三角形类继承自Shape类。这两个类分别具有什么属性?为什么要这这样设计? 2.可选:尝试使用UML类图绘制出继承关系,并截图分享。 参考资料 UML类图参考链接:http://www.cnblogs.com/doubleyan/archive/2009/11/2

  • 2023-06-23 14:09 陈奕纯

    public class Shape {
    // Shape class properties
    String color;
    int x;
    int y;
    int width;
    int height;
    }
    public class Triangle extends Shape {
    // Triangle class properties
    int vertex1X;
    int vertex1Y;
    int vertex2X;
    int vertex2Y;
    int vertex3X;
    int vertex3Y;
    int side1;
    int side2;
    int side3;
    }
  • 查看全部(4条)

2023-02-13 19:10 郑如滨 集美大学 在Java程序设计课程中提问:

思考:什么时候使用static?

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

  • 2023-06-23 14:08 陈奕纯

    1.当一个方法或变量需要初始化加载或经常被调用的时候应该声明为static,可以访问非静态方法且不用考虑线程安全性问题时不声明为static。
    2.是。
  • 查看全部(10条)

2023-02-13 19:10 郑如滨 集美大学 在Java程序设计课程中提问:

练一练:static关键字

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

  • 2023-06-23 14:08 陈奕纯

    1.第二句会出错,因为radius是非静态变量,不能静态引用非静态场半径。
    2.因为static方法是静态方法,不依赖于任何对象就可以进行访问。
  • 查看全部(9条)

2023-02-13 19:10 郑如滨 集美大学 在Java程序设计课程中提问:

思考:对象的初始化

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

  • 2023-06-23 14:07 陈奕纯

    1. 构造方法是定义在Java类中的一个用于初始化对象的方法,一般的语句格式为:
    public 方法名(){ //可指定参数,无返回值类型
    //初始化代码
    }
    2. 一个类有多个构造方法,则创建对象时应根据传参类型和个数来匹配执行构造方法
    3. 若无定义构造方法则每个类都会有一个默认的无参构造方法,一个类可以不编写构造方法,因为系统会给该类提供一个默认的无参构造方法
    4. 初始化块先执行
  • 查看全部(9条)

2023-02-13 19:10 郑如滨 集美大学 在Java程序设计课程中提问:

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

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

  • 2023-06-23 14:07 陈奕纯

    public class Circle {
    private double radius;
    // 1. 无参数构造方法
    public Circle() {
    this.radius = 1.0;
    System.out.println("调用无参数构造方法");
    }
    // 2. 有参数构造方法
    public Circle(double radius) {
    this.radius = radius;
    System.out.println("调用有参构造方法");
    }
    // 3. 在无参数构造方法中使用this调用有参构造方法
    public Circle() {
    this(1.0);
    }
    // 获取圆的面积
    public double getArea() {
    return Math.PI * radius * radius;
    }
    // 获取圆的半径
    public double getRadius() {
    return radius;
    }
    public static void main(String[] args) {
    // 4. 测试有参、无参构造方法
    Circle c1 = new Circle();
    Circle c2 = new Circle(2.0);
    System.out.println("c1的半径为:" + c1.getRadius());
    System.out.println("c1的面积为:" + c1.getArea());
    System.out.println("c2的半径为:" + c2.getRadius());
    System.out.println("c2的面积为:" + c2.getArea());
    // 5. 删除无参数构造方法,执行new Circle()观察结果
    // 编译错误,因为无参数构造方法已经被删除
    // 6. 初始化块
    {
    System.out.println("执行初始化块");
    }
    // 构造方法后执行初始化块
    Circle c3 = new Circle(3.0);
    }
    }
  • 查看全部(3条)

常见问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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