黑马程序员技术交流社区

标题: 初入JAVA的基础 [打印本页]

作者: 厨房拿出    时间: 2018-3-24 21:18
标题: 初入JAVA的基础
技术帖
JAVA是一门编程语言,在黑马学习的过程中每天需要记录当天学习的知识,以下是我每天的一些内容记录。
第一天:基础语法
关键字:被JAVA语言赋予特定含义的单词
特点:
     1:组成关键字的字母全部小写
      2:常用的编辑软件会有特别的颜色注明
       class.public.static.void

标识符:
     标识符:起名字/除了关键字的单词 全部都是标识符
     标识符可以自己定义:
               规则:字母 数字 _ $
                不能以数字开头 不能是关键字
约定俗成习惯:
       类名,接口名,:首字母大写,如果包含多个单词,后续每个首字母全部大写
                HelloWorld   Student
                方法名,变量名:首字母小写,如果有多个单词,后续的单词每个首字母都大写
                     get getSum
     常量名:所有的字母全部大写,如果包含多个字母,单词间用_隔开JAVA_HOME
               注意事项:
             不能以数字开头  int 2b=20
             不能是JAVA中的关键字 int class=100
数据类型分类:
     a:基本数据类型
        b:引用数据类型(类,接口,数组,枚举)       
    基本数据类型:四类八种
       整数:byte        1    -128~127
            short       2
            int         4
            long        8  定义long变量的时候需要加上大写的L
       浮点型:float     4  定义float变量的时候需要加上大写的F
              double    8
       字符:char        2

       布尔(boolean)    1


第二天:运算符
内容辅助键:alt+/
  A:main方法
       main,然后alt+/,回车
  B:输出语句
    syso,然后alt+/,回车
注释快捷键:
   单行  选中注释 ctrl+/,再来一次取消
   多行  选中注释 ctrl+shift+/ 取消ctrl+shift+\
    ctrl+shift+f 格式化(调整代码格式)
"++""--":自增自减,用于对变量+1或者-1
   当++放在变量后面的时候,a自己+1,a++整体不变
    int b=a++
   当++放在变量前面的时候,a自己+1,++a按整体+1
int b=++a
赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:+=,-=
关系运算符
    ==,!=,<,>,<=,>=
   关系运算符的结果是boolean类型的
   
   逻辑运算符
   用于连接关系表达式
   与 &,有false则false
   或|,有true则true
三元运算符
     关系表达式?表达式1:表达式2















第三天:语句
导包快捷键:ctrl+shift+o
If有三种语句:
  1:
    If(关系表达式){
        语句体;
}
2:
    if(关系表达式){
        语句体1;
    }else{
        语句体2:
   }
3:
if(关系表达式1){
        语句体1;
     }else if(关系表达式2){
        语句体2;       
     }.....
      else{
        语句体n+1;
     }
switch语句格式:
   switch(表达式){
      case 值1:
       语句体1;
       break;
       ...
       default:
        语句体N+1;
        break;
    }
循环语句:
   for语句:
     for(初始化语句;判断条件语句;控制条件语句){
        循环体语句;
     }
while语句:
       初始化语句;
       while(判断语句){
        循环语句;
        控制条件语句;       
       }
     do...while循环体语句
      
      初始化语句;
       do{
        循环语句;
        控制条件语句;
       }while(判断语句);
死循环:
        for (;true;){
                        System.out.println();
                }
               
                while(true){
                        System.out.println();
                }
               
                do{
                        System.out.println();
                }while(true);
控制循环的语句break和continue:
                break:强制中断循环。
                continue:终止本次循环,继续下次循环。




第四天:数组
random(随机数):
     使用步骤;
       A:导包
            import java.util.Random;
       B:创建对象
            Random r=new Random();
       C:获取随机数
         int number= r.nextInt(10);
数组的概括:
    数组是储存多个变量(元素)的东西(容器)
     这多个变量的数据类型要一致
动态初始化:
           数据类型[]数组名=new 数组类型[数组长度]
      初始化:
           整数型:0
           浮点型:0.0
           布尔型:false
           字符型:'/u0000'
静态初始化格式:
    数据类型[]数组名=NEW 数据类型[]{元素1,元素2,...元素N}
    int [] arr=new int []{1,2,3};
     简化格式:
    int [] arr={1,2,3};  
数组的常见的两个问题:
     A:数组索引越界 原因:访问了不存在的索引 ArrayIndexOutOfBoundsException
     B:空指针异常 原因:数组已经不再指向堆内存数据了,你还使用数组名去访问元素  nullpointerException  
     
  二维数组:
      一个元素为一堆数组的数组
  定义格式:
      A:数据类型[][]数组名;(推荐使用)
      B:数据类型 数组名[][];
      C:数据类型[]数组名[];
  初始化:
     A:动态初始化
        数据类型[][]数组名=NEW 数据类型[m][n];
        m表示的二维数组中一维数组的个数
        n表示是一堆数组中元素的个数
     B:静态初始化
       数据类型[][]数组名=NEW 数据类型[][]{{元素...},{元素...}...}
       简化格式
        数据类型[][]数组名= {{元素...},{元素...}...}

















第五天:引用方法
方法:其实就是完成特定功能的代码块
定义格式;修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数2...){
            方法体;
            return 返回值;
    }
两个明确:
       A:返回值类型   明确功能结果的数据类型
       B:参数列表    明确有几个参数,以及参数的数据类型
   
方法的调用:(有明确返回值的方法调用)
  A:单独调用:没有意义
  B:输出调用:有意义,但是不够好,因为我可能需要那结果进行进一步的计算
  C:赋值调用:推荐方式
      注意:方法不能嵌套!

方法的调用:(void修饰的方法调用(没有返回值的调用))
   A:只能单独调用
   注意:没有返回值的方法后面可以跟return,但是后面不能跟值.意思是程序到这里结束
方法重载:在同一个类中,出现了方法名相同的情况.
      方法重载的特点:
            方法名相同,参数列表不同.与返回值无关
      参数列表不同;
           A:参数的个数不同
           b:参数对应的数据类型不同
       //不能出现方法名相同,并且参数列表也相同!
方法的参数如果是基本数据类型:形式参数的改变不影响实际参数.
        形式参数:用于接收实际参数的变量
        实际参数:实际参与运算的变量
  
方法的参数如果是引用数据类型:形式参数的改变将直接影响实际参数.









第六天:断点调试
Debug:  调试断点
先双击想要看的代码的行数的左边,然后右键进入debug as,再点击java application,进入debug界面。
F6是下一步;
F5是进入方法;
左上角会有一个变量变化的图表,可以清楚的看到变量的变化,这样可以完整的看到程序是怎么样运行的,在后期工作中可以用这种方法找出自己代码的错误。
运行完之后,点击左上方的停止按钮,然后退出,再双击刚才的代码左边的断点即可。


第七天:面向对象
定义类:
                class Student{
                        String name;
                        int age;
                        String sex;
                        public void buysomething(){
                                System.out.println("买东西");
                        }
                }

使用类:
                创建一个类的 对象,并去使用                                    class StudentTest{
                        public static void main(String[] args){
                                // 类名 对象名 = new 类名();
                    Student s = new Student();
System.out.println(s.name);                              System.out.println(s.age);       
成员变量和局部变量的区别:
写的位置不同:
成员变量:类中 方法外
局部变量: 方法内
内存位置不同:
成员变量: 堆
局部变量: 栈
生存周期:
成员变量:随着对象的创建而存在 随着对象的消失而消失
局部变量:随着方法的调用而存在 随着方法的调用完毕而消失
               
初始化:
成员变量:有默认初始化
局部变量:没有默认初始化 : 所以使用之前必须先赋值。

private: 被private修饰的成员,只能在本类中访问,之外的任何地方不能直接访问。

封装:把不需要对外展示的内容 隐藏起来,并对外提供公共的访问方式。


this:代表的是当前类的当前对象




JAVA11期 吴文波




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2