A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

xiao宁

初级黑马

  • 黑马币:16

  • 帖子:5

  • 精华:0

© xiao宁 初级黑马   /  2017-12-27 22:19  /  1317 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


学习方法:
每天要做的事——笔记、作业、代码
知识点的学习——A:是什么?
B:有什么特点?
C:如何使用?
D:什么时候使用?
E:能讲给别人听么?
学习的前提
         (1)目标要明确
         (2)兴趣是最好的老师
         (3)自信是成功的法宝
         (4)要求和建议
                   A:写总结,记笔记,写注释。
                   B:多交流

                   C:勤练习:敲--狂敲(学习的捷径 不走弯路,就是捷径)
常用的DOS命令
                   A:盘符的切换
                            **D:回车
                   B:进入目录
                            **cdaaa
                            **cdc:\aaa\bbb
                   C:回退目录
                            **cd...  返回上一级目录
                            **cd\   返回根目录
                   D:删除文件
                            **dela.txt
                            **del*.txt  删除所有以.txt结尾的文件
                   E:清屏
                            **cls
                   F:退出DOS窗口
                            **exit
                   了解:dir,md,rd
标识符的规则
         A:由26个英文字母大小写,数 字:0-9 符号:_ $ 组成。
         B:不能以数字开头。
         C:不能与关键字重名。
         注意:java语言严格区分大小写。
变量
         (1)在程序的运行过程中,其值是可以改变的量。
                   A:是内存中的一小块存储区域。
                   B:用于存储数据。
         (2)声明变量的格式:
                   A:数据类型 变量名 = 初始化值;
                      **byte b = 10;
                      **System.out.println(b);
                   B:数据类型 变量名;
                      变量名 = 初始化值;
                      使用变量
                      **byte b;
                      **b = 20;
                      **System.out.println(b);
         (3)好处:该空间可以重复使用。

         (4)什么时候使用变量呢?当要使用的数据是不确定的时候。
数据类型1、分类
         A:基本数据类型
         B:引用类型(类,接口,数组)
2、基本数据类型
         48种,区别在于他们在内存中的存储空间大小不一样。
                   A:整数
                            **字节 byte 1个字节
                            **短整型 short 2个字节
                            **整型 int 4个字节
                            **长整型 long 8个字节 其后跟L或者l标示
                   B:浮点数
                            **单精度 float 4个字节 其后跟F或者f标示
                            **双精度 double 8个字节
                   C:字符
                            **char 2个字节
                   D:布尔
                            **boolean1个字节 truefalse

                   注意:整型默认是int;浮点型默认是double
运算符1、算数运算符 +,-,*,/,%,++,- -
         A%
                   **左边小于右边,结果是左边
                   **左边等于右边,结果是0
                   **左边大于右边,结果是余数
                   **余数的正负,取决于左边的正负
                   **应用:%2 (结果是0,1)
         B++,--
         **单独使用,放在操作数前后结果一样。 a++;++a;
         **参与操作(运算,赋值,打印)时,放在操作数的前面,数据本身改变,再参与操作。
                                     inta = 12; b = ++a;  //a=13,b=13;
         **参与操作(运算,赋值,打印)时,放在操作数的后面,数据先进行临时存储,数据本身改变,最后将存储的数据进行赋值。
                                      int a = 12; b = a++;  //a=13,b=12;
         C+
                   **正号
                   **加法运算符
                   **字符串连接符
                   ***"hello"+'A'+1结果是helloA1
                   ***'A'+1+"hello"结果是66hello
2、赋值运算符 =,+=,-=,*=,/=%=
         Aint x = 3;//3赋值给int类型变量x
         Bx += 3; //x = x +3;  把左边和右边相加赋给左边。
         C:左边必须是变量。
         D:面试题
                   short s = 2;
                   s = s + 2;
                   s += 2; //+= 有一个自动强制转换的过程
                   哪一行会报错?为什么?
3、关系运算符 ==,!=,>,>=,<,<=
         A:比较运算符的结果都是boolean型,也就是要么是true,要么是false
                   **System.out.println(3==3);  结果是true
                   **System.out.println(3!=3);  结果是false
4、逻辑运算符 &,|,^,!,&&,||
  
        
/*
   
|运算符:或
   
      左边       右边           结果
   
       true       true            true
   
       false         true       true
   
       true       false      true
   
       false      false      false
   
简单的说:有true则true。
   
*/
   
   
   
   
         逻辑运算符用于连接boolean类型的表达式  

/*
&运算符:与
         左边       右边               结果
         true        true                 true
         false        true     false
         true        false     false
         false        false    false
简单的说:有falsefalse
*/
  
        
/*
   
!运算符:非
   
!true       false
   
!false      true
   
!!true     true
   
*/
   
   
   
   
   
/*

^运算符:异或
         左边       右边               结果
         true       true                   false
         false      true    true
         true       false   true
         false      false   false
简单的说:相同则false,不同则true
  
        
/*
   
||:短路或
   
|:或
   
区别:||是左边为true了,右边就不操作了。
   
         |左边是true,右边还得继续操作。
   
*/
   
   
   
   
*/

/*
&&:短路与
&:与
区别:&&是左边为false了,右边就不操作了。
           &左边是false,右边还得继续操作。
*/
5、三元运算符 (?:)
         A(条件表达式)?表达式1:表达式2
                   **如果条件表达式为true,运算后的结果是表达式1
                   **如果条件表达式为false,运算后的结果是表达式2
         B:表达式:用运算符连接起来的式子就叫表达式
                   **算术表达式 a+b
                   **赋值表达式 a+=2;
                   **关系表达式 (a+b+c) >(a+b)
                   **逻辑表达式 (a<b) ||(c>d);
                   **三元运算符100>200?(300>200?100:200):200; 结果是:200

         C:特点:运算完后,肯定有结果。
语句(顺序 选择 判断 循环)一、顺序结构
         (1)程序从上往下,从左往右依次执行。
二、判断结构(if语句)1、第一种格式
         if(条件表达式--只有两个结果(true/false)){
                   执行语句;
         }
         A:执行流程
                  首先判断条件表达式,如果值为true,那么就执行if语句所控制的语句体。
                   如果为false,就不执行语句体。
         B:条件表达式无论简单(a>b)或者复杂((a+b+c)>(a+b)),其结果是boolean值。true或者false。如果是其他的值,则错误。
         注意问题:
                   Aif(条件表达式)其后没有分号。
                            一般来说,有"{}"就没有"",有""就没有"{}"
                   Bif语句所控制的语句如果是一条语句,我们可以不写大括号;
                      如果控制的是两条以上的语句,必须加大括号。
                      if语句的控制体没有加大括号是其后跟的一条语句。
                      建议:永远加上大括号。避免不必要的错误。
2、第二种格式
         if(条件表达式){
                  执行语句1
         }else{  //else 否则的意思
                   执行语句2
         }
         A:执行流程
                   首先判断条件表达式,如果值为true,那么就执行语句1
                   如果为false,就执行语句2
         Bif可以单用,第一种格式。
                    else必须有if
         C:发现if语句的第二种格式和三元运算符相似。
                   区别:
                            (1)三元运算符是if语句的简写形式。
                            (2)所有的三元运算符都可以用if语句改写。反之不行。
                            为什么?因为三元运算符是一个运算符,计算完后,必有结果。
3、第三种格式
         if(条件表达式){
                   执行语句1
         }else if (条件表达式){
                   执行语句2
         }
         ……
         else{
                   执行语句n
         }
         Aelse可以省略,但是不建议。
                   (1)它是第三种格式的组成部分。
                   (2)你有可能没有判断完所有的情况,我们就可以使用else来完成特殊情况。
         B:执行流程
                   虽然格式很长,但是,它整体只是一条语句。
                   不断的判断,只要有满足条件的条件表达式,就执行该判断处控制的语句体,执行完后。语句结束。
                   当都不满足时候,执行else
         Cif后面必须有条件表达式。
                            else后面没有条件表达式。
         Dif语句的嵌套
                            if语句里面的语句体还是if语句。
4if的应用
         A:给定一个数值,请打印出对应的星期?。
         B:一年有四季,每季三个月
                      春:3,4,5
                      夏:6,7,8
                      秋:9,10,11
                      冬:12,1,2
                      给定一个月份,输出对应的季节。
         Cif语句什么时候使用?
                   ***对几个值进行判断的时候
                            ****
                            1,2,3,4,5,6,7
                            if(x==1)
                            {}
                            elseif(x==2)
                            {}
                                     ...
                   ***对结果是boolean类型的进行判断
                            ****
                            if(x>3)
                            {}
                            elseif(x==3)
                            {}
                            elseif(x??)
                            {}
                                     ...
                   ***对范围进行判断
                            ****
                            if(x>90 && x<100)
                            {}
                            elseif(x>80 && x<=90)
                            {}
                            ...
三、选择结构1、基本格式
         switch(表达式){
                   case 取值1:
                            执行语句;
                            break
                   case 取值2:
                            执行语句;
                            break
                   …...
                   default:
                            执行语句;
                            break

         }
选择结构1、基本格式
         switch(表达式){
                   case 取值1:
                            执行语句;
                            break
                   case 取值2:
                            执行语句;
                            break
                   …...
                   default:
                            执行语句;
                            break
         }
2、针对基本格式的说明
         Aswitch 用于定义选择结构范围。
                   表达式:被选择的结果,该表达式只能有四种类型:byte,short,int,char
                   注意:在JDK5以后,还支持一个叫做枚举的类型(enum);JDK7以后,还支持String类型。
         Bcase :被选择的答案
         Cbreak:跳出,结束switch语句。
         Ddefault:默认的意思。当所有的case都不匹配时,执行default里面的内容。相当于if语句中的else
函数1、定义:
就是完成一个特定功能的一段小程序。
A:以后写代码的时候,就得注意了:
                            **我们在也不用把所有的代码都放到主函数里面去了。
                            **主函数只负责调用我们自定义的函数。
         B函数的格式
                   修饰符 返回值类型  函数名(参数类型 形式参数1,参数类型 形式参数2,…){
                                     执行语句;
                                     return返回值;
                            }
       说明:
                   **修饰符---- 修饰函数的。现在不用管,后面专门讲。现在统一写为: public static
**返回值类型---- 函数本身是具有特定功能的一段独立的小程序,这个功能在运算完或者执行完之后,肯定有结果,那么结果到底是什么类型的呢,我们需要在函数上标示一下。
                   **函数名---- 为了方便使用定义好的函数,我们就给它起个名字。
                   **参数类型----
                                     ***形式参数----接受实际参数的变量
                                     ***实际参数----实际使用的数值
                   **执行语句----函数是用于完成一段特定功能的,有可能这段功能需要多条语句执行,这就有了执行语句。
                   **return----就是将执行的结果返回回来的一个关键字。其后跟的是返回的结果。
2、特点
A:定义函数可以将功能代码进行封装,便于对该功能进行复用。函数的出现提高了代码的复用性。
         B自定义函数只有被调用才会被执行。
         C函数中只能调用函数,不可以在函数内部定义函数。因为函数是平级的。
         D:被调用时:
                            **有明确返回类型的函数:   
                                     ***可以单独使用,但是没有意义;
                                     ***可以赋值给一个和返回类型对应的变量,然后输出变量;
                                     ***可以直接在输出语句中直接使用;
                            **void返回类型的函数:
                                     **只能单独调用。不能用于打印
注意:返回值类型和参数列表中参数类型没有关系!
定义功能,功能中需要定义什么就定义什么,不需要的就不要定义。
3、函数的应用
                   A:如何自定义函数--------两个明确
                            **明确函数的返回值类型
                            **明确参数列表(形参的类型及个数)
                   B:两个整数的求和
public class Sum {
    public static void main(String[] args) {
       int sum = getSum(3,4);
       System.out.println(sum);
    }
    //返回值类型:int,未知内容:inta,int b
    public static int getSum(int a,int b){
       return a+b;
    }
}
                   C:取得两个整数中较大的值
public class Max {
    public static void main(String[] args) {
       int max = getMax(3,5);
       System.out.println(max);
    }
    //返回值类型:int,未知内容:inta,int b
    public static int getMax(int a,int b){
       return a>b?a:b;
    }

}
数组1.数组的定义
         存储的是同一种数据类型的数据的集合,它是一个容器。
2.数组的格式(一维数组)
         第一种格式
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
         示例:int[] arr = new int[5];
**左边:
int 表示数组中元素的数据类型
[] 表示数组
arr 数组的名字
简单说:定义了一个int类型的数组,名称是arr。      
**右边:
new 创建一个实体
实体:存储一个数的东西叫变量。存到多个数据的东西叫实体。
new:class是用来定义一个类的,new是用来创建一个实体的。
int 表示数组中元素的数据类型
[] 表示数组
5 表示此数组中有5个元素
简单说:创建一个int类型的数组实体,该实体中可以存储5个int类型的元素。
第二种格式:
        元素类型[] 数组名 = new 元素类型[]{元素1,元素2,……};
示例:int[] arr = newint[]{3,5,1,7};
int[] arr ={3,5,1,7};
面向对象思想  类与对象  一、面向对象思想1、面向对象与面向过程区别和联系。
                   A:区别:
                            **面向过程关注执行过程,这个时候我们是执行者。
                            **面向对象关注的是最终功能,这个时候我们是指挥者。
                   B:联系:.
                            **面向对象是基于面向过程的。
2、面向对象
                   A:面向对象思想的特点。
                            **是符合人们思考习惯的一种思想。
                                     ***编程思想就是来源于生活。
                            **将复杂的问题简单化了。
                            **把我们从执行者变成了指挥者。                                    
                   B:举例
                            **我去面试,boss调用了我的写程序的功能,不需要自己去做。
                            **找女朋友洗衣服、做饭。
                   C:请给我解释面向对象的思想。
                            **先说特点
                            **举例说明这些特点
3、面向对象思考问题的方式
                   找对象,完成功能。
                   如果对象不存在,自己就造一个对象。
4、面向对象的三大特性
                   A:封装
                   B:继承
                   C:多态
此外面向对象还有个一个特性------->抽象!
二、类与对象1、类
是对现实世界事务的抽象。
                   A:类就是一类事物的抽象。
2、对象
是该类事物具体的存在个体。
3、如何描述一个类
                   A:现实生活中我们用属性和行为来描述一个事物。
                   B:这个时候我们就可以用属性和行为来描述一个类
                            那么,他们在类中分别对应什么呢?
                            **属性 -- 成员变量 (属性)--------------->整个类中有效
                            **行为 -- 成员方法 (函数,功能)------>整个类中有效
4、自定义类的分析过程
                   A:分析:
                            **首先分析这个类是个什么样的事物
                            **其次你就应该该事物具有哪些属性和行为
                            **把这个事物的属性和行为对应成我们类的成员变量和成员方法。
                   B:自定义一个电脑类
                            **属性 颜色,品牌,重量
                            **行为 开机,关机,上网
                      对应成类
                            //自定义电脑类
                            classComputer
                            {
                                     Stringcolor;//颜色
                                     Stringtype;//品牌
                                     doubleweight;//重量         
                                     publicvoid start(){}//开机
                                     publicvoid stop(){}//关机
                                     publicvoid online(){}//上网
                            }
5、对象的创建和使用及对象的内存图
                   A:对象的创建
                   Student s = newStudent();//创建一个Student的对象,并把它赋给了Student类型的s
                   B:使用对象
                            如果你想使用类中的方法和属性,你必须通过类的实例(对象)来调用。
                            调用方式:
                                     对象名.属性;
                                     对象名.方法名(参数列表);
三、成员变量和局部变量的区别1、作用范围
                   成员变量作用于整个类。
                   局部变量只作用于它所属的范围(函数,语句);
2、生命周期&位置
                   成员变量存储在堆内存中,是属于对象的,随着对象的存在而存在,随着对象的消失而消失。
                   局部变量存储在栈内存中,是属性它所属范围的,使用完立即被释放。
3、初始值
                   成员变量都有默认初始化值。
                            **整型 0
                            **浮点型 0.0
                            **字符型 '\u0000' 空字符
                            **布尔型 false
                            **字符串 null
                   局部变量没有默认值,要想使用,必须遵循:
                            先定义(声明),再赋值,最后使用。
封装1、概念
把实现细节隐藏,提供公共的访问方法。
任何对象或者系统都应该有一个明确的边界,边界内部的改变对外部没有影响,在java中,类包含了数据和方法,将数据放到一个类中就构成了封装。他将变化的进行了隔离,这样大大的提高了程序的安全性,由于他提供了公共访问方式,我们只需要调用它的功能即可,这样就提高了代码的复用性(只关注功能不用在意具体实现),自然而然就方便使用了。我们只需要将类中的成员变量私有(在变量名前加private即可),并提供相对应的set和get方法。                 机箱和主板的例子。
私有只是封装的一种体现,隐藏才算是封装。
2、好处
                   A:将变化隔离。
                   B:便于使用。
                   C:提高重用性。
                   D:提高安全性。
3private关键字
                   Aprivate
                            **私有的
                   B:特点
                            **是一个权限修饰符。
                            **可以修饰成员,被修饰的成员只能在本类中访问
                   C:一般用法
                            **一般用于将成员变量私有,提供公共的get,set方法进行访问。                  
         自定义类 一般格式:
                   classStudent{
                            privateString name;
                            publicvoid setName(String n){
                                     name= n;
                            }
                            publicString getName(){
                                     returnname;
                            }
                   }

                   注意:set方法可用于对成员变量进行赋值。
this关键字1、概念
代表本类对象的一个引用
                   A方法被哪个对象调用,该方法内的this就代表哪个对象。
2、使用场景
                   A局部变量隐藏成员变量
                            classStudent{
                                     privateString name;
                                     /*
                                     publicvoid setName(String n){
                                               name= n;
                                     }
                                     */
                                     publicvoid setName(String name){
                                               this.name= name;
                                     }
                                     publicString getName(){
                                               returnname;
                                     }
                            }
                            Students = new Student();
                            s.setName("张三");   
                            Stringstr = s.getName();
                            System.out.println(str);
                            System.out.println(s.getName());
                   B构造方法中使用this
                            classStudent{
                                     privateString name;
                                     privateint age;
                                     Student(){}
                                     Student(Stringname){
                                               this.name= name;
                                     }
                                     Student(intage){
                                               this.age= age;
                                     }
                                     Student(Stringname,int age){
                                               //this(name);//代表就是调用构造方法----构造方法中的调用方式
                                               this.name= name;
                                               this.age= age;
                                     }
                            }
                   C比较年龄
                            publicboolean compare(Person p){
                                     returnthis.age==p.age;
                                     //returnthis.getAge()==p.getAge();//是可以的。

                            }

1 个回复

倒序浏览
总结得很详细,希望这个好习惯会一直伴随着你!信心来自于实力,实力来自于勤奋。加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马