《程序设计基础》总结

Seveny07 2022-12-11 22:01:24

1.梳理总结学习过的知识点

 1.1数据类型、表达式:

(1)数据类型

java的基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种,

其中

类型名称关键字占用内存取值范围
字节型byte1 字节-128~127
短整型short2 字节-32768~32767
整型int4 字节-2147483648~2147483647
长整型long8 字节-9223372036854775808L~9223372036854775807L
单精度浮点型float4 字节+/-3.4E+38F(6~7 个有效位)
双精度浮点型double8 字节+/-1.8E+308 (15 个有效位)
字符型char2 字节ISO 单一字符集
布尔型boolean1 字节true 或 false

所有的基本数据类型的大小(所占用的字节数)都已明确规定,在各种不同的平台上保持不变,这一特性有助于提高 Java 程序的可移植性。

1)整数类型

Java 定义了 4 种整数类型变量:字节型(byte)、短整型(short)、整型(int)和长整型(long)。这些都是有符号的值,正数或负数。

名称说明
字节型(byte)byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。
短整型(short)short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。
整型(int)int 类型是最常使用的一种整数类型。
长整型(long)对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型。

2)浮点类型

浮点类型是带有小数部分的数据类型,也叫实型。浮点型数据包括单精度浮点型(float)和双精度浮点型(double),代表有小数精度要求的数字。

单精度浮点型(float)和双精度浮点型(double)之间的区别主要是所占用的内存大小不同,float 类型占用 4 字节的内存空间,double 类型占用 8 字节的内存空间。双精度类型 double 比单精度类型 float 具有更高的精度和更大的表示范围。

Java 默认的浮点型为 double。

3)布尔类型

布尔类型(boolean)用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。Java 中用保留字 true 和 false 来代表逻辑运算中的“真”和“假”。因此,一个 boolean 类型的变量或表达式只能是取 true 和 false 这两个值中的一个。
4)字符类型

Java 语言中的字符类型(char)使用两个字节的 Unicode 编码表示,它支持世界上所有语言,可以使用单引号字符或者整数对 char 型赋值。

一般计算机语言使用 ASCII 编码,用一个字节表示一个字符。ASCII 码是 Unicode 码的一个子集,用 Unicode 表示 ASCII 码时,其高字节为 0,它是其前 255 个字符。

Unicode 字符通常用十六进制表示。例如“\u0000”~“\u00ff”表示 ASCII 码集。“\u”表示转义字符,它用来表示其后 4 个十六进制数字是 Unicode 码。

(2)表达式

算术运算符:+ - * / % 及 ++、–
赋值运算符:简单赋值运算符 = ,符合赋值运算符 +=、<<=、>>>=、&= 等
关系运算符:算术比较 >、<= 等,类型比较运算 instanceof,相等关系运算符(可以比较数字、布尔、引用) ==、!=
逻辑运算符:逻辑与 &&、逻辑或 ||、逻辑非 !
条件运算符(表达式1 ? 表达式2 : 表达式3)

1.2程序结构

(1)顺序结构

顺序结构就是程序从上到下一行一行的执行代码,没有判断和中转。

(2)选择结构

有选择性的执行或者跳过指定代码 

1)if语句

    if 选择语句的四种形式:

    有选择性的执行或者跳过指定代码
a.    if(条件){…}
    判断是否为真如果不为真则直接执行else语句
b.    if(条件){…}else{…}
    先判断是否为真如果不为真则执行else if 再次判断是否为真 如果都不为真则执行else语句
c.    if(条件){…}else if(条件){…}else{…}
    if中嵌套一个if 如果外层if为真则运行内层的if 如果外层不为真则运行else
d.    if(条件){ if(条件){...} } else {...}

2)switch语句

表达式expr的值必须是下述几种类型之一:
byte、short、int、char、enum(枚举);java7之后可以是String。
case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围。
所有case子句中的值应是不同的,否则会编译出错。
default子句是可选的(不是必须的)。
break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去。

3)循环语句

1.循环的分类

while 循环
do/while 循环
for循环
2.循环的组成部分
4. 初始化部分:对循环变量赋初值
5. 循环条件部分:判断循环变量是否超出某个界限
6. 循环体部分:要循环执行的具体逻辑.
7. 更新循环变量部分:修改循环变量的值

while循环
while (循环条件) {语句块(循环体)}

先判断循环条件表达式的值。若为true.则执行循环体,然后再次判断条件并反复执行,直到条件不成立为止。特点:先判断再执行。

do-while循环
do {语句块} while(条件表达式) ;

先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环。
特点:先执行,再判断。

while 和 do-while的区别
while 和 do/while 的区别:


1 执行过程不同
while 先执行循环条件,然后再执行循环体,一句话:先判断,再执行
do/while 先执行循环体 然后再执行循环条件,一句话:先执行,再判断
2 当第一次不满足循环条件的情况下 while循环不能执行循环体, do while 可以执行一次

for循环
for (表达式1 [循环变量初始化]; 表达式2 [循环条件判断]; 表达式3 [更新循环变量]){
循环体

首先计算表达式1,接着计算表达式2,若表达式2的值为true,则执行循环体,接着计算表达式3,再判断表达式2的值.
依此重复下去,直到表达式2的值为false。
特点:先判断,再执行。

1.3数组应用

1.3.1数组的定义

      1)一维数组:

          数据类型[]  数组名称   =    new  数据类型[初始化长度大小] {数据1,数据2,....};

      2)二维数组:

           数据类型[][]  数组名称   =    new  数据类型[行的长度] [列的长度] { {多个数据},{多个数据(数据长度保持一致)},....};

1.3.2数组的简单应用

数组本身属于引用数据类型,所以在数组的操作中依然可以进行内存空间的引用传递

 

  • 数组与方法参数的传递

既然数组内容可以进行引用传递, 那么就可以把数组给方法中的参数. 而如果
一个方法要想接收参数, 则对应的参数类型必须是数组。下面首先通过一道简单的
程序来进行说明

1.3.3面向对象编辑方式

1)对象数组:

  • 数组是引用类型, 而类也同样是引用类型, 所以如果是对象数组的话表示一个引用类型里面嵌套其他的引用类型。
  • 在之前使用的数组都属于基本数据类型的数组, 但是所有的引用数据类型也同样可以定义数组, 这样的数组称为对象数组。
  • 如果要定义对象数组(以类为例),可以采用如下格式完成。

    • 格式:对象数组的动态初始化

    类名称 对象数组名称= new  类名称[长度];

    如果使用了对象数组的动态初始化, 则默认情况下, 数组的每一个元素都是其对应的默认值null,
    都需要分别进行对象的实例化操作。

    • 格式:对象数组的静态初始化

    类名称 对象数组名称= new 类名称[]{实例化对象,实例化对象, ..}

1.4类、方法

类(Class)
一个 Java 文件中可以定义多个 class 类,但是只能有一个 public 修饰的类。
在一个 Java 文件里定义两个类,其实跟建两个 Java 文件分别定义一个类是一样,建议一个 Java 文件只定义一个类。
1. 修饰词(Modifier)
public 修饰的类名和 Java 文件名要一致。
protected 可以作用在不包中的子类(跨包继承引用)。
无访问修饰符只能作用在同一个包中。
private 本类访问,修饰的成员变量被其他类使用时提供 get/set 方法。
2. 方法(Method)
方法通常是动词。
方法定义在类中方法外,不能嵌套定义,必须定义后调用才会执行。
a. 方法的调用(Calls to Method)
无参数无返回值的方法可以直接调用。
有参数有返回值的方法,调用时需要传递参数值并接收返回值。
成员方法需要创建对象才能调用。
加了 static 的方法是静态方法,可以在定义的本类中直接使用方法名调用,类名可以省略;在成员类中,调用不需要创建对象,静态不能直接访问非静态,无论是成员变量还是成员方法,如果有了 static,都推荐使用类名称进行调用。
b. 参数(Parameter)
实际参数和形式参数的类型必须相同。

Formal Parameter(形参 ):方法定义中的参数。
Actual Parameter(实参):调用方法用的参数。
c.方法的重写与重载(Overriding & Overloading)
方法的重写(Overriding)和重载(Overloading)是 Java 多态性的不同表现。

重写是父类与子类之间多态性的一种表现。
重载可以理解成多态的具体表现形式,构成重载的条件:同一类下,方法名相同,参数列表不同(参数个数,类型,或者顺序不同即可)。

3. 构造方法(Constructor)
构造方法通常是一个名词,和类名一致。
构造方法的作用是初始化对象的成员变量。
如果类中没有定义构造方法,编译器会帮我们加上一个无参构造方法,构造方法可以重载,推荐写上无参构造方法,再使用带参构造,因为 java 虽然有自己默认的构造函数,但是一但这个类编写了自己的构造函数,原来的默认构造函数就不存在了,这时如果再想调用默认构造函数就会出错。
构造方法没有返回值,也不需要 void。
构造方法可以使用四种权限修饰符的任何一种,但不能用 abstract, final, native, static, synchronized 等非访问修饰符,因为构造方法是类。
a. 关键字 this
修饰的变量用于指代成员变量,主要用来区分成员变量和局部变量:
当方法参数和类的成员变量同名时,使用 this.成员变量 代表成员变量;
当方法参数与成员变量异名时,优先指代成员变量,所以有时候也不用加 this。
this(); 调用自身无参构造方法。

2.PTA实践总结

2.1示例一

 2.2示例二

 

 2.3在线评测系统使用感受

刚开始使用pta很不习惯,包括使用pta平台出现的各种问题但是在IDEA不会出现这类问题,不能复制粘贴等等……但是也慢慢的习惯了pta上的规范,也能更好地纠正自己不好的习惯之类的,所以感觉这个平台还是可以的。但是还是会有一些烦人的评测系统出现问题,希望能一起优化一起进步。

3.改进学习方法、措施落实情况

3.1除课堂外,遇到不会的问题会用到CSDN等平台进行搜索

 

3.2根据记录2个月的每天代码时长,利用excel绘制统计表

3.3感觉个人的哪些方法还存在不足?哪些方面需要改进?

感觉自己在学习java的过程中还是没有能够耐心的去刷题学习,希望以后能多花时间改进这方面。

4. 你知道csdn么,结合使用情况表述他的优点与不足
    4.1 csdn给你的直观感受是什么?

社区里的成员们都很无私,能够分享自己的学习经验,所以在遇到不会的问题再来csdn一搜基本上就能解决问题。
    4.2 csdn你感觉最不舒服的地方是什么?

有些回复需要付费
    4.3 你还利用了哪些平台学习编程知识,他们是哪些网站或资源,优点是什么?

pta刷题

b站看网课
5. 你认为影响你学习编程的主要阻力是什么?如何克服!

最主要的阻力是在java的刷题中非常枯燥,没有什么成就感,所以会导致没有耐心一直学。希望以后能克服掉这种没耐心的心理。

 

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

147

社区成员

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

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