《程序设计基础》学习总结

1. 梳理总结学习过的知识点(自行总结,内容不限于下列)

1.1 数据类型、表达式

1.1.1  8种基本数据类型:

byte(位)    8 bit (1Byte)    0    -2^7 ~2^7-1

short(短整数)    16 bit (2Byte)    0    -2^15 ~2^15-1

int(整数)    32 bit (4Byte)    0    -2^31 ~ 2^31-1

long(长整数)    64 bit (8Byte)    0    -2^63 ~ 2^63-1

float(单精度)    32 bit (4Byte)    0.0    -2^31 ~ 2^31-1

double(双精度)    64 bit (8Byte)    0.0    -2^63 ~ 2^63-1

char(字符)    16 bit (2Byte)    空    0 ~2^16-1

boolean(布尔值)    1 bit    false    true、false

1.1.2:转义字符:

\’ 单引号字符    

\\ 反斜杠   

\n 换行   

\f 走纸换页

\" 双引号   

\r 回车   

\b 退格   

\t 制表符

1.1.3逻辑运算符

 逻辑运算符主要包括逻辑与( & ),逻辑或( | ),逻辑异或( ^ ),短路与( && ),短路或( || )。所有逻辑运算符的特点是操作数都是布尔类型,并且最终的运算结果也是布尔类型

1.1.4位运算符

~   按位取反    ~op

&   按位与  op1 & op2

|   按位或  op1 | op2

^   按位异或    op1 ^ op2

>>  op1 按位右移 op2 位 op1 >> op2

<<  op1 按位左移 op2 位 op1 << op2

>>> op1 添零右移 op2 位 op1 >>> op2

1.2 程序结构

一个Java程序的基本结构大体可以分为包、类、main()主方法、标识符、关键字、语句和注释等等。

public class First {

    public static viod main(String[] args) {

       System.out.println("Hello world!");

    }

}

1.3 数组应用

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

1.3.1数组初始化

数组的两种常见初始化方式:

动态初始化(指定长度)

静态初始化(指定内容)

动态初始化:

数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[数组长度];

数组存储的数据类型 数组名字[ ] = new 数组存储的数据类型[数组长度];

静态初始化

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};

例:

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

int[] arr;

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

数组定义格式:

数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

[] : 表示数组。

数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

new:关键字,创建数组使用的关键字。

数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

[长度]:数组的长度,表示数组容器中可以存储多少个元素。

注意:数组有定长特性,长度一旦指定,不可更改。

1.3.2数组的访问

索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引 (index),可以通过数组的索引访问到数组中的元素。

索引访问数组中的元素:

数组名[索引] = 数值,为数组中的元素赋值

变量 = 数组名[索引],获取出数组中的元素

1.4 类、方法

1.4.1类与对象的基本概念

类与对象时整个面向对象中最基础的组成单元。

类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);

对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。

可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。

1.4.2类与对象的定义和使用

在Java中定义类,使用关键字class完成。语法如下:

class 类名称 {

         属性 (变量) ;

         行为 (方法) ;

}

范例:定义一个Person类

class Person {     // 类名称首字母大写

    String name ;

    int age ;

    public void tell() {        // 没有static

          System.out.println("姓名:" + name + ",年龄:" + age) ;

         }

}

1.4.3类的方法

方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程。

将功能封装为方法的目的是,可以实现代码重用,简化代码

Java里的方法不能独立存在,所有的方法必须定义在类里。

1.4.4方法的声明格式

修饰符 返回值类型 方法名(参数类型 形参1,参数类型 形参2,…){

       方法体程序代码

Return 返回值;

}

2. PTA实践总结

选择不少于两个程序示例进行说明,需要发布源代码、测试用例。

谈一下在线刷题的个人感受。

感受:通过完成PTA上老师发布的实践任务,可以及时巩固当天上完课后所学的知识点,大量的代码实践,增强敲代码的熟练度。只有通过不断地实践,亲自敲代码,去发现错误,并自行通过查阅去解决。

2.1示例1

6 sdut-循环-6-统计字符 (II)

首先给出所输入字符的个数N,然后给出N个字符,统计其中英文字母、空格、数字字符和其他字符的个数。

源代码:

import java.util.Scanner;

public class Main{

    public static void main (String[] args){

        Scanner sc =new Scanner(System.in);

        int N=sc.nextInt();

        int letters=0;

        int blanks=0;

        int digits=0;

        int others=0;

        sc.nextLine();      

        String myStr=sc.nextLine();

        char strs[]=myStr.toCharArray();

        for(int i=0;i<strs.length;i++){

            char ch=strs[i];

            if(ch<='z'&&'a'<=ch){

               letters++;

            }else if(ch<='Z'&&ch>='A'){

                letters++;

            }else if('0'<=ch&&ch<='9'){

                digits++;

            }else if(ch==' '){

                blanks++;

            }else{

                others++;

            }

        }     

          System.out.println("letters="+letters);

          System.out.println("blanks="+blanks);

          System.out.println("digits="+digits);

          System.out.println("others="+others);

        }

    }

测试用例:10

AaZ & 15Az

2.2示例2

7-3 打印所有的水仙花数

编写程序打印出所有的水仙花数。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 输出的数之间用“,”(英文半角的逗号)分割。

源代码:

public class Main{

    public static void main(String[] args){

        double a,b,c,sum;

        int[] arr=new int[4];

        int num=0;

        for(int i=100;i<=999;i++){

        a=Math.pow(i%10,3);

        b=Math.pow(i/10%10,3);

        c=Math.pow(i/100,3);

        sum=a+b+c;

        if(sum==i){

            arr[num]=i;

            num++;

           

        }

        }

        for(int f=0;f<arr.length-1;f++){

            System.out.print(arr[f]+",");

        }

          System.out.println(arr[arr.length-1]); 

    }

}

2.5在线评测系统使用感受

不太好用,有些错误莫名奇妙,测试用例时正常,一到提交时就各种报错,并且不会告知错在哪里,导致完成题目的过程中会白白走很多弯路

3. 改进学习方法、措施落实情况(内容可扩展,至少包括以下项)

3.1 除课堂外,遇到不会的问题时会到哪个平台搜索

主要在CSDN进行搜索

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

 

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

    Java的语法还不够熟练,缺少练习

4. 你知道csdn么,结合使用情况表述他的优点与不足

知道,目前使用很好,想要搜索的问题及解决方法都能找到解决办法,暂时还没有发现不足

4.1 csdn给你的直观感受是什么?

好用便捷

4.2 csdn你感觉最不舒服的地方是什么?

暂时还没有

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

哔哩哔哩,可以学习编程基础,视频比文字更加生动易懂。

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

时间问题,压缩时间

6. 其它(针对课程的学习,请发挥)    

今后会更加合理的安排学习编程的时间,高效学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值