zoukankan      html  css  js  c++  java
  • java学习笔记(2)注释、public lcass、class、标识符、字面值、变量

    java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点

     关于java源程序中的注释

      *什么是注释?注释的作用是什么?

        -出现在java源程序当中,是对java源代码的解释说明。

        -注释不会被编译到.class字节码文件当中。

        -一个号的开发习惯,应该是多编写注释。这样程序的可读性增强。

      *java的注释怎么写呢?

        -单行注释

          //单行注释,只注释当前行

        -多行注释

          /*

            多行注释

            多行注释

            ...

          */

        -javadoc注释(比较专业的注释,可以用javadoc命令生成说明文档,这个命令也是在JDK的bin目录下)

          /**

          * javadoc注释

          * javadoc注释,同样是多行注释

          */

    下面来试一试,我是用vscode编写的代码,将HelloWorld.java程序用注释说明一下

    // public 表示公开的
    // class  表示定义一个类
    // HelloWorld  表示一个类名
    public class HelloWorld{//表示定义一个公开的类名为HelloWorld类
        // 类里面的内容叫作【类体】,记住
        // 类体中不能直接编写java语句【除了生命变量之外】
        // System.out.println("Hello, world!");//这个地方打开注释,编译就通不过
        /*
        public表示公开的
        static表示静态的
        void表示空
        main表示方法名是main
        (String[] args)是main方法的形式参数列表
        需要记住的是,以下的方法是一个程序的主方法,是一个程序的入口,主方法以main命名
        这是SUN公司规定的写法,不这么写程序进不来!!
        */
        public static void main(String[] args) {//表示定义一个公开的静态的主方法,返回值是空
            // 方法里的内容叫作方法体
    
            // 下面的语句叫java语句
            // java语句【java语句以";"结尾,分号必须是半角分号】
            // 先记住以下代码的意思是,向控制台输出一段字符串
            // 以下双引号必须是半角的双引号【这是java语法都的一部分】
            // java中所有的字符串都使用双引号括起来,记住不能是单引号
            System.out.println("Hello, world!");
            // 再向控制台输出消息
            System.out.println("Hello,jackson!");
            // 输出中文
            System.out.println("您好,杰克!");
            // 输出中文【提示,以下程序员两边的双引号是全角的】
            System.out.println("我是一个“程序员”");
        }
    }

    然后编译时报错了,

    出现这样的错误,一般是因为代码中含有中文字符,注释中的中文字符也算。由于使用CMD运行java程序的时候,系统默认的编码格式是gbk。而包含中文字符的代码一般是UNICODE格式,所以直接运行含有中文字符的代码就很容易出现编码错误。

    第一种解决办法,用这个命令编译:javac -encoding UTF-8 HelloWorld.java

    第二种办法,用nodepad++或editplus将编码转化为UTF-8编码格式

    刚才没注意到

     我的vscode是用的UTF-8 with BOM编码格式,忙活了半天,最后右键这点选择为UTF-8格式即可

    不过编译命令还是的使用:javac -encoding UTF-8 ./HelloWorld.java

    然后让程序运行一下:java HelloWorld

     ok正常!!!

     另外注意类体中不能直接编写java语句,除声明变量之外

     接下来我们重新建一个K.java文件

    里面用class创建了B、X、Y、Z这几个类

    然后执行javac ./K.java

    然后会把B、X、Y、Z这几个类编译出来

     那么public class和class的区别是什么呢?

    public class和class的区别

       *一个java源文件当中可以定义多个class

      *一个java源文件当中public的class不是必须要有的

      *一个class会对应生成xxx.class字节码文件

      *一个java源文件当中定义公开的类的话,public的class只能有一个,并且该类名称必须和java源文件名称一致

      *每一个class当中都可以编写main方法,都可以设定程序的入口,想指向B.class中的main方法,执行java B即可,依此类推

      *当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法,若没有主方法,会出现运行阶段的错误,报错是,该类中没有主方法

     例子:

    class B{
        public static void main(String[] args){
            System.out.println("B`s main method invoke!");
        }
    }
    class X{
        public static void main(String[] args){
            System.out.println("X`s main method invoke!");
        }
    }
    class Y{
        public static void main(String[] args){
            System.out.println("Y`s main method invoke!");
        }
    }
    class Z{
        public static void main(String[] args){
            System.out.println("Z`s main method invoke!");
        }
    }
    public class K{
        public static void main(String[] args){
            System.out.println("K`s main method invoke!");
        }
    }

     标识符

    /*
    关于java语言中的标识符
        1、什么是标识符?
            -在java源程序当中,凡是程序员有权利自己命名的单词都是标识符
            -标识符在EditPlus编辑器当中以黑色字体高亮显示
            -标识符可以标识什么元素呢?
                *类名
                *方法名
                *变量名
                *接口名
                *常量名
                ......
        2、标识符的命名规则?【不按照这个规则来,编译器会报错,这是语法】
            *一个合法的标识符只能由数字、字母、下划线_、美元符号$组成,不能含有其它的符号
            *不能以数字开头
            *严格区分大小写
            *关键字不能做标识符
            *理论上无长度限制,但是最好不要太长
        3、标识符的命名规范?【只是一种规范,不属于语法,不遵守规范,编译器不会报错】
            *最好见名知意
                例如:
                    public class UserService{
                        public void login(String username,String password){
                        }
                    }
            *遵守驼峰命名方式
                例如:
                    SystemService
                    UserService
                    CustomeService
            *类名、接口名:首字母大写,后面每个单词首字母大写
            *变量、方法名:首字母小写,后面每个单词首字母大写
            *常量名全部大写
    java语言汇总常见的关键字
        public class static void if for while do default byte short int long 
        float double boolean char private protected switch true false throw
        throws try catch...
    */
    public class IdentifierTest01{//IdetifierTest01是一个类名,名字可以修改
        //main是一个方法名
        public static void main(String[] args){//args是一个变量名
            System.out.println("")
        }
        // doSome就是方法名
        public static void doSome(){
            // i就是变量名
            int i = 10;
        }
    }

     字面值

    /*
    关于字面值
        *字面值:
            -10、100
            -"abc"
            -'a'
            -true
            -false
        *字面值就是数据。
        *字面值是java源程序的组成部分之一,包括关键字和标识符他们都是java源程序的组成部分。
        *数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的。【数据类型】
            -10、100属于整数型字面值
            -3.14属于浮点型字面值
            -true、false属于布尔型字面值
            -"abc"、"中国人"属于字符串型字面值
            -'a'、'人'属于字符型字面值
        *注意:java语言当中所有的字符串型字面值必须使用""双引号括起来,双引号是半角(英文状态下的双引号)
        *java语言当中所有的字符型字面值必须使用''单引号括起来,单引号是半角
    */
    public class ConstTest01{
        public static void main(String[] args){
            System.out.println("abc");
            System.out.println("最近您过的怎么样?");
            System.out.println(10);
            System.out.println(100);
            System.out.println(false);
            System.out.println(true);
            System.out.println('A');//注意单引号是字符型字面值
            System.out.println(3.14);
            // 下面会编译报错,因为单引号中只能存放单个字符,属于字符型字面值
            // System.out.println('ABC');
        }
    }

     变量

    /*
    关于java语言当中的变量:
        1、什么是变量?
            *变量本质上来说是内存中的一块空间,这块空间有数据类型、有名字、有字面值。
            *变量分为三部分:数据类型、名字、字面值【数据】。
            *变量是内存中存储数据的最基本的单元。
        2、数据类型的作用?
            *不同的数据有不同的类型,不同的数据类型底层会分配不同大小的内存空间。
            *数据类型是指导程序在运行阶段应该分配多大的内存空间。
        3、变量要求:变量中存储的具体的"数据"必须和变量的"数据类型"一致。当不一致的时候编译报错。
        4、声明/定义变量的语法格式:
            数据类型 变量名;
                *数据类型:比如说 int是整数型
                *变量名:只要是合法的标识符就行。规范中要求,首字母小写,后面的单词首字母大写。
                    例如:
                        int i;
                        int age;
                        int size;
                        int length;
                        int num;
                        其中int是数据类型,i、age、size、length、num都是变量名。
        5、变量声明之后,怎么赋值?
            变量名 = 字面值;
            要求:字面值的数据类型必须和变量的数据类型一致。
            = 等号,是一个运算符,叫作赋值运算符,赋值运算符先运算等号右边的表达式,表达式
                    执行结束之后的结果赋值给等号左边的变量。
        6、声明和赋值可以放到一起完成。
            int i = 10;
        7、变量赋值之后,可以重新赋值,变量的值可变化。
            int i = 10;
            System.out.println(i);//10
            i = 20;
            System.out.println(i);//20
            i = 100;
            System.out.println(i);//100
        8、有了变量的概念之后,内存空间得到重复的使用。
        9、通常访问一个变量包括两种访问方式:
            *第一种:读取变量中保存的具体数据。(get方式/获取)
            *第二种:修改变量中保存的具体数据。(set方式/设置)
                i = 20;//set
                System.out.println(i);//get
        10、变量在一行上可以声明多个。
            int a,b,c;
        11、java中的变量必须先声明并且赋值后才能访问。
            int i;程序执行到这里,内存空间并没有开辟出来,变量i并没有初始化。
                所以没有赋值之前变量是无法访问的。
    */
    public class VarTest01{
        public static void main(String[] args){
            //声明一个int类型的变量,起名i
            int i;
            // 编译报错:变量i并没有初始化。
            // 在java当中变量必须先声明再赋值之后才能访问。声明但没赋值的情况下无法访问,编译会报错。
            // System.out.println(i);
            i = 100;//给i变量赋值,i变量在这里完成初始化,内存开辟。
            System.out.println(i);
            // i再次重新赋值
            i = 200;
            System.out.println(i);
        }
    }
    /*
        关于java语言中的变量:
            1、方法体中的java代码,是遵守自上而下的顺序依次执行的,逐行执行。
                第一行;
                第二行;
                第三行;
                特点:上一行的程序不结束,下一行永远不会执行。
            2、在同一个"作用域"当中,变量名不能重名。但是变量可以重新赋值。
    */
    
    public class VarTest02{
        public static void main(String[] args){
            int i = 100;
            System.out.println(i);//100
            i = 200;
            System.out.println(i);//200
    
            //以下代码顺序执行有错误,应该先声明赋值再访问。
            // System.out.println(k);
            // int k = 300;
    
            //以下代码重复声明相同类型,相同名字的变量,在java中是不允许的,要和javascript区别开
            // int i = 90;
            // System.out.println(i);
        }
    }
    /*
        关于java中的变量:
            变量的作用域:
            1、什么是作用域?
                变量的作用域,其实描述的就是变量的作用域范围。
                在上面范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。
            2、变量的作用域只要记住一句话:
                出了大括号就不认识了。
    
    */
    
    public class VarTest03{
        // 注意:这里的static不要去掉
        static int k = 90;
        public static void main(String[] args){
            // 变量i的作用域是main方法
            // 在整个main方法当中是有效的,可见的,可访问的
            int i = 100;
    
            System.out.println(i);//100
            System.out.println(k);//可以访问k   90
    
            // 以下会编写一个for循环语句
            // 这个for循环后面的控制语句,后面再说。
            for(int a=0;a<10;a++){//a变量的作用域是整个for循环,循环结束后,a变量的内存就释放了
    
            }
            // 这里访问不了a变量
            // System.out.println(a);
    
            int j;//j变量的作用域是main方法,不是for循环
            for(j=0;j<10;j++){
    
            }
            System.out.println(j);//10
        }
    
        public static void dosome(){
            // 这里无法访问main方法当中的变量i
            // 已经出了i变量的作用域
            // System.out.println(i);
    
            // 可以访问k
            System.out.println(k);
        }
    }
    /*
        关于变量的分类:
            根据变量声明的位置来分类:
                *局部变量
                    -在方法体当中声明的变量叫作局部变量。
                *成员变量
                    -在方法体外【类体内】声明的变量叫作成员变量。
            在不同的作用域当中,作用域是可以一样的。
            在同一个作用域当中,变量名不能重名。
    */
    
    public class VarTest04{
        // 成员变量 
        int k = 200;
    
        // 主方法入口
        public static void main(String[] args){
            // i是局部变量
            // int i = 10;
            // java遵循就近原则
            System.out.println(i);//100
        }
    
        //这属于成员变量  去掉static之后 main中就访问不到类体中的i变量了
        static int i = 100;
        // 类体汇总不能直接编写java语句【除了声明变量之外】
        // System.out.println(i);
        // dosome方法
        public static void dosome(){
            // 局部变量
            int i = 90;
        }
    }
  • 相关阅读:
    分布式-通信(NIO&BIO&网络模型&零拷贝)
    cmake构建和链接静态库与动态库
    ldd
    CMAKE_BUILD_TYPE
    C/CXX attribute
    ffmpeg使用说明(2):ffmpeg提取video,audio,yuv/rgb,PCM
    ffmpeg使用说明(1):ffmpeg帮助使用指南
    ffmpeg使用说明(0):ffmpeg/ffplay/ffprobe
    ffplay使用帮助说明
    书写log的艺术
  • 原文地址:https://www.cnblogs.com/fqh123/p/11965196.html
Copyright © 2011-2022 走看看