Java基础教程 从C/C++到Java(一)

Java基础教程 从C/C++到Java(一)

前言:本系列教程/学习笔记共四篇,适用于有一定C++基础,了解(就行)面向对象编程的学生
本教程/学习笔记较为基础,对于线程交互设计等较为深入的内容无涉及 学习笔记中比较简略的部分还请移步专业贴
涉及内容如下表所示

索引 内容
学习笔记(一) 数据类型 + 基本结构 + 函数基础
学习笔记(二) 构造函数 + 类的调用 + 成员变量及成员函数 + 程序结构
学习笔记(三) 重载 + 继承 + 造型 + 抽象
学习笔记(四) 异常与异常机制 + MVC设计模式 + 控制反转 + 接口

同样4天学完java基础的B站dalao生之丶如舟中对java的笔记的基础知识讲得更详细一些,推荐配合食用。以下为链接:
笔记1:http://note.youdao.com/noteshare?id=d81e5cad69a458625809061680639bc8
笔记2:http://note.youdao.com/noteshare?id=3a615172262d7a9b4f4c5e438da92d5e

环境配置

Windows 10 下的Java安装极其简单

  • Windows 10
  • Intellij IDEA
  • JDK

配置过程及HelloWorld上路可以参考这篇详实的文章:IntelliJ IDEA 运行你的第一个Java应用程序 博主:疯子加天才(更新:莫名被拦, 可以鼠标右键在新建标签页中打开)

今天学习了Java基础部分 包括

  1. 数据类型
  2. 基本结构
  3. 函数基础

学习内容请看代码及注释

代码

// 注释规则根据个人喜好 采用PEP8标准
// 补充性注释放在代码右侧至少空两格处 “//”符号后还需接一个空格 举例:  //错误注释   // 正确注释
// 结构性注释放在代码的上方
package quickstart;        // 快速启动包 具体作用暂不清楚

import java.util.Scanner;  //当在主程序中调用Scanner类的时候IDEA会自动import

public class BritishToMetric {          //公有类型 命名使用开头大写的驼峰命名法

    private static double function(double parameter1){    // 私有类型的函数定义
        System.out.println("This is Function");
        return parameter1;    // 返回类型为int
    }

    public static void main(String[] args){         // 主调函数 公有类型 使用标准驼峰命名法

        int foot;         //数据类型 变量命名采用标准驼峰命名法
        double inch = 0;  // 初始化赋值为非表达式时无意义
        Scanner in = new Scanner(System.in);  // Scanner输入类 in为此类型变量
        foot = in.nextInt();
        inch = in.nextDouble();

        double metricHeight = (foot + inch/(double)12) * 0.3048;  // 强制类型转换 此处inch/12无需前后空格(整体)

        System.out.println("foot=" + foot + ", inch=" + inch);    // 输出 连接符 单目运算符前后空格(整体时例外)
        System.out.println(Math.round(metricHeight));             // 调用Math类的方法四舍五入成int


        //  判断结构                    //java中也有switch-case-break结构 使用方法同C
        if (metricHeight >= 1.3)        // 单句时可以不需要大括号
            System.out.println("可以坐过山车哦!");

        else if (metricHeight < 1.3 && metricHeight > 0){       // 逻辑运算符 & 不是按位取反 详情自查
            System.out.print("身高不太够呢!");
            System.out.print("\r");  // \r和\n都是回车 “\”是反斜杠
        }
        else
            System.out.println("身高是负数???");

        // 循环结构 for循环、while循环、do-while循环全部和C相同


        // 数组类型
        final int SIZE = 20;                              // final终态 不可改变 不可继承 不可重载
        int[] oneDimensionArray = new int[SIZE];          // 形式同C++动态分配创建数组 本质为指针 数组大小可以是变量
        int[][] twoDimensionAttay = {{1, 2, 3}, {4, 5}};  // 初始化 空缺位补零

        // 字符串类型
        String stringA, stringB;          // 字符串类型String本质是数组,同C++一样 强调↓
        stringA = in.next();              // 注意:两个String的比较不能直接== 名字仅代表指针
        stringB = stringA;                // sb与sa指向不同地址???↑Why?
        stringB += "this is sb";          // 字符串连接
        System.out.println("The length of stringB is:" + stringB.length());  //可调用常用方法

        char charA = 'A';
        Character charB = stringB.charAt(0);          //java中存在Integer, Double, Character, Boolean等包裹类型
                                                      // 包裹类型和基本类型基本等价 但提供一些封装好的方法
        charA += 2;     // 字符类型操作和C完全相同 也使用ASCII码

        boolean isTheSame = charA == charB;           // 布尔类型是boolean
        System.out.println(isTheSame);


        // 函数调用
        final double numberA = metricHeight + 1;  // static int 结构在Java中无法使用
        double returnValue = function(numberA);  //注意:同C一样 传参只传值不传变量 生存期和作用域和C完全一样
    }
}

总的来说和C/C++没有太大差别 但是面向对象编程的特点特别明显
话说System.out.print()就不能简化成像python一样简单的print()吗
代码把主要的知识都涵盖了,一些比较细小的操作可以需要时再查

无关紧要的后记

今天开始在MOOC上看翁老师的从零起步Java课程,讲得一如既往地有水平。但由于有C/C++/Python基础,课程稍微浅了一些。Java本身和C/C++语法上有很多相似和相同之处,因此只需要类比和触类旁通便可以节约很多宝贵时间。明天继续学习进阶部分

你可能感兴趣的:(学习笔记)