java程序设计基础

信管1223202211671310 2022-12-11 19:19:41

导语:

经过一个学期的java程序设计基础课程的学习,我在原来已有的基础知识之上,又通过实践,掌握到了不少知识。下面我将以几个模块大概进行我本学期的学习总结。

 

一,我学到了java基本的分支结构的程序设计:

  1. if语句

if (布尔表达式) {

    程序代码

}

   进阶:

if (布尔表达式) {

    程序代码

}else if (布尔表达式){

    程序代码

}else{

    程序代码

}

我易犯的错误:

  1. 布尔表达式中不为判别式
  2. 布尔表达式中对非string类型的判断左右是否等价写成“=”而不是“==”
  3. 布尔表达式中对string类型的判断左右是否等价仍然用成“==”而不是“A.equals(B).”
  4. 在多层嵌套中不习惯用静态的眼光看待外部返回进入内部的值而导致写的程序有问题

 

  1. switch语句

switch(表达式) {

    case 常量值1 :

        语句块1

        break;

    case 常量值2:

        语句块2

        break;

    …

    default :

        默认语句块

}

易犯错误:表达式与常量值对应错误

 

二,我学到了java基本的循环语句的程序设计

  1. while循环语句

while (循环条件) {

循环体

}

易犯错误:

  1. 不会跳出此循环的办法,想利用它如果循环条件成立则可以一直循环下去的特点,但往往没意识到如果循环条件为否则不会跳出while而是停止运行,等待循环再次成立

 

  1. do-while循环体

do {

循环体

} while (循环条件);

 

  1. for循环体

for (赋初始值; 循环条件;迭代语句) {

语句1;

     语句 n

}

易犯错误:

  1. 容易忽略循环条件那个严格的界限而导致程序返回“超出读取范围”错误

 

三,我学到了一维数组、二维数组的初步使用

1.  定义数组的语法格式

数据类型[] 数组名;

2.  静态初始化的两种方式

int[] array;                              

array = new int[]{1,2,3,4,5};   

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

int[] array = new int[]{1,2,3,4,5};  

  1. 动态初始化

int[] array = new int[10]; 代表array数组中有十个未定的int类型的元素

常把10换成n,通过改变n来实现可操作性

  1.  数组.length表示数组的长度(其中有几个元素)
  2. 数组的遍历

习惯于用for循环实现对低维数组的遍历

For的使用模板:

for(int i=0;i<n;i++){

    数组[i]

}

//再加一个for可以遍历二维的

  1. 关于数组的排序
  1. 冒泡排序法

public static void main(String[] args) {

    for (int i = 0; i < score.length - 1; i++) {

        for (int j = 0; j < score.length - 1 - i; j++) {

            if (score[j] > score[j + 1]) {

                  double temp = score[j + 1];                 

score[j + 1] = score[j];

                  score[j] = temp;             

}

            System.out.print(score[j] + " ");         
}

        

        for (int j = score.length - 1 - i; j < score.length; j++) {

            System.out.print(score[j] + " ");

      

    }

}

  1. 普通排序

思路:不断在不断缩小的区间中找最大的值与第一位交换

 

  • 我初步了解了类与对象的概念,但是这方面编程能力仍然不足,以下只是我目前的理解

 

  1. 面向对象程序设计的特点:

(1)封装性:把原来复杂的流程简化成简单的操作,便于我们多次使用

(2)继承性:当我们要不完全重复写一个类时,我们可以直接在调用原来类的基础上再加点属于新类的东西,这样避免了多余的代码,也简化了机器运行的流程

(3)多态性:没啥好说的,这要求我们一定要“找对人干活”

 

  1. 类的基本格式:

(修饰符)class 类名{

类体

}

  1. 修饰符为访问权限修饰符:public和默认(默认是啥?)
  2. class 类名  = 类的声明
  3. 类名首字母必须大写
  4. 类体=属性+方法

 

  1. 属性的基本格式

(修饰符)数据类型 属性名;

  1. 属性名最好全小写

 

  1. 方法基本格式:

(修饰符)返回数据类型 方法名(参数列表){

方法体

[return+返回的参数]

}

 

5.this关键字

类在定义成员方法时,局部变量和成员变量可以重名,但此时不能访问成员变量。为避免这种情形,可以使用this关键字,表示当前对象,指向调用的对象本身。

(1)使用this调用类中的属性

this关键字可以明确调用类的成员变量,不会与局部变量名发生冲突。

(2)使用this调用成员方法

this既然可以访问成员变量,那么也可以访问成员方法。

(3)使用this调用构造方法

构造方法是在实例化时被自动调用的,因此不能直接像调用成员方法一样去调用构造方法,但可以使用this([实参列表])的方式调用其他的构造方法。在使用this调用构造方法时,还需注意:在构造方法中,使用 this调用构造方法的语句必须位于首行,且只能出现一次。另外,this调用构造方法时,一定要留一个构造方法作为出口,即至少存在一个构造方法不使用this调用其他构造方法。

 

6 .super关键字

当子类重写父类方法后,子类对象将无法访问父类被重写的方法。如果在子类中需要访问父类的被重写方法,可以通过super关键字来实现,其语法格式如下:

super.成员变量

super.成员方法([实参列表])

在继承中,实例化子类对象时,首先会调用父类的构造方法,再调用子类的构造方法;当子类继承父类时,并没有继承父类的构造方法,但子类构造方法可以调用父类的构造方法。在一个构造方法中调用另一个重载的构造方法使用this关键字,在子类构造方法中调用父类的构造方法用super关键字,语法格式如下:

super([参数列表])

 

7.final关键字

在Java中,为了考虑安全因素,要求某些类不允许被继承或不允许被子类修改,这时可以用final关键字修饰。它可用于修饰类、方法和变量,表示“最终”的意思,即用它修饰的类、方法和变量不可改变,具体特点如下:

(1)final修饰的类不能被继承。

(2)final修饰的方法不能被子类重写。

(3)final修饰的变量是常量,初始化后不能再修改。

用法:

(1)修饰类

使用final关键字修饰的类称为最终类,表示不能再被其他的类继承,如Java中的String类。

(2)修饰方法

使用final关键字修饰的方法,称为最终方法,表示子类不能重写此方法。

(3)修饰变量

使用final关键字修饰的变量,称为常量,只能被赋值一次。如果再次对该变量进行赋值,则程序在编译时会报错。

 

 

学习感悟:

经过一个学期的对java基础的学习,我感觉我已经可以大概编出一些基本的小算法了,但是也只局限在我所学过的内容中。学程序给我最大的感悟就是,我在遇到不懂的东西的时候,可能会面临这一大片都是知识盲区的情况,这会大大打击我学习的动力,但是我认为我应该迎难而上,不懂的就去搞懂,不要在意到底还有多少不懂的,克服种种困难之前先要克服心中的困难。希望下个学期的学习我可以学到比我现在学到的更加多的东西。

 

...全文
62 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

147

社区成员

发帖
与我相关
我的任务
社区描述
广东海洋大学 数学与计算机学院 信息管理与信息系统专业 《程序设计基础》 JAVA入门
java 高校 广东省·湛江市
社区管理员
  • CheXQ_gdou
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧