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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

吕德波

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 吕德波 初级黑马   /  2018-3-24 22:10  /  872 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java编程基础学习,在前半段的循环语句,判断语句,各种运算符以及到后面的二维数组等更多的靠逻辑思维.而后面开始学的方法,面向对象,更多的就是要靠自己的理解了.到了这里会是一个相对的难点.大概就是一个分水岭了.
       在这里分享一些自己的个人笔记把
自增运算符号:++
自增符号放在前面跟后面的结果是完全不同的.放在前面,会先进行自增,在进行运算.而放在后面,则会把值提取出来进行运算,先不自增.
int a =10;
a=a++;
System.out.println(a)
/*
       第一步:a++   a变为了11
       第二步:a++这个整体为10
       第三步:a++这个整体赋值给了a , a又变成了10
       第四步:输出a为10
*/
判断语句:
if else
       if(关系表达式){
              语句体;
       }else{
              语句体2;
       }
public static void main(String[] args) {
              //创建对象
              Scannersc = new Scanner(System.in);
              //接收数据
              System.out.println("请输入学生的考试成绩:");
              intscore = sc.nextInt();
              //我们发现程序不够健壮,加入错误数据的判断
              if(score<0|| score>100){
                     System.out.println("你的成绩是错误的");
              }elseif(score>=90 ){
                     System.out.println("你的成绩属于优秀");
              }elseif(score>=80 ){
                     System.out.println("你的成绩属于好");
              }elseif(score>=70 ){
                     System.out.println("你的成绩属于良");
              }elseif(score>=60 ){
                     System.out.println("你的成绩属于及格");
              }else{
                     System.out.println("你的成绩属于不及格");
              }
       }
}
如果if 的第三种格式里面所有的条件表达式都满足,从上往下,只执行一个
switch
              关系表达式里的类型:byte,short,int,char
              jdk5之后可以是枚举
              jdk7以后可以是字符串
注意事项:default 无论放在switch的任何位置,都是先去看case最后才去看default
              如果执行了一个case之后,里面没有遇到break,直接case穿透(直接执行下一个case里面的内容,直到遇到break或者大括号)
循环语句
for(初始化;判断语句;控制条件语句){
       循环体语句;
}
初始化语句;
while(判断语句){
       循环语句;
       控制条件语句;
}
初始化语句;
do{  
       循环语句;
       控制条件语句;
}(判断语句)
for循环结束后,初始化的变量就不能使用了.而while循环结束后,初始化变量还可以继续使用.
数组
       变量只能存一个
       数组是一个容器,存很多,但是固定长度
       集合是一个容器,存很多,长度不固定
int[]arr,定义了一个int类型的数组,数组名是arr;
int arr[],定义了一个int类型的变量,变量名是arr的数组
数组初始化
动态初始化:只给出长度,由系统给出初始化值
       数组类型[] 数组名=new 数据类型[数组长度];
       int[]arr= new int[3];
       左边:int:说明数组中的元素类型是int类型
       []说明这是一个数组;arr:这是数组的名称
       右边:new:为数组申请内存分配,开辟空间
       int:说明数组中的元素类型是int类型;[]说明是一个数组
       3:数组的长度,其实就是数组中的长度
静态初始化:给出初始化值,由系统决定长度
       数组类型[] 数组名=new 数据类型[]{元素1,元素2,元素3,...}
       int[]arr=new int[]{1,2,3};
       简化格式:
              数据类型[] 数组名={元素1,元素2,元素3,...};
              int[]arr={1,2,3};
方法
意义:完成特定功能的代码块。
格式:
修饰符  返回值类型  方法名(参数类型 参数名1,参数类型 参数名2...){
       方法体语句;
       return返回值;
}
格式解释:
       A:修饰符  目前记住publicstatic
       B:返回值类型  用于限定返回值的数据类型
       C:方法名为了方便我们调用方法的名字
       D:参数类型用于限定调用方法时传入的数据类型
       E:参数类名用于接收调用方法时传入数据的变量名
       F:方法体   完成功能的代码
       G:return  结束方法,并且把返回值带给调用者
写方法俩个明确:
       明确返回值类型
明确参数类表      明确几个参数,以及参数的数据类型
class Demo2_Sum{
       publicstati void main(String[] args){
              intsum =add(10,20);      //1 调用add方法,将10和20分别传递给a和b
}                                                //5将方法的结果返回给sum
public staticint add(int a,int b){ //2 复制a=10,b=20 .(int a,int b)形式参数,用来接收实际参数的。
              intsum = a+ b;                   //3 执行语句把a和b相加赋值给sum
              returnsum;                         //4 通过return将sum的结果返回
}
},
注意事项:
单独调用:一般来说没有意义,不推荐
输出调用:但是不够好,因为我们可能需要针对结果进行进一步的操作。
赋值调用,推荐方案
方法不调用不执行
方法和方法是同级的,不能嵌套
如果有返回值必须用return语句带回。
方法调用的时候参数之间用逗号隔开
方法调用的时候,不用再定义数据类型。
Void修饰的方法调用,只能用单独调用
重载
概念:方法名相同,参数类表不同,与返回值类型无关
Println其实就是一个方法的重载
重载的分类
参数个数不同
参数类型不同
方法的参数如果是基本数据类型:形式参数的改变不影响实际参数
方法的参数如果是引用数据类型:形式参数的改变影响实际参数
参数:
       实际参数:就是实际参与运算的。
       形式参数:就是方法定义上的,用于接收实际参数的。
面向对象
创建对象
格式:类名 对象名=new 类名()
对象如何访问成员?
       成员变量:对象名.变量名
       成员方法:对象名.方法名(...)
成员变量与局部变量的区别
       A:在类中的位置不同
              成员变量:类中,方法外
              局部变量:方法中或者方法声明上(形式参数)
       B:在内存中的位置不同
              成员变量:堆内存
              局部变量:栈内存
       C:生命周期不同
              成员变量:随着对象的创建而存在,随着对象的消失而消失
              局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
       D:初始化值问题
              成员变量:有默认值
              局部变量:没有默认值,必须先定义赋值,最后使用.
private:
       是一个修饰符
       可以修饰成员变量,也可以修饰成员方法
       被private修饰的成员只能在本类中被访问
针对private修饰的成员变量,我们会相应的提供getXxx和setXxx用于获取和设置成员变量的值,方法用public修饰
面向对象:
封装,继承,多态.
封装:
把不需要对外展示的内容,隐藏起来,并对外提供公共的访问方式.
比如面向对象:成员变量加private提供公共的set和get方法.
好处:安全.提供代码的复用型.
在同一个类中,如果有局部变量和成员变量名相同的情况,在局部使用的时候,采用的是就近的原则.
构造方法:
       给对象的数据进行初始化
格式:
       方法名和类名相同
       没有返回值类型,连void都不能写
       没有具体的返回值
构造方法的注意事项:
A:如果我们没有给出构造方法,系统将会提供一个默认的无参构造方法供我们使用.
B:如果我们给出了构造方法,系统将不再提供默认的无参构造方法供我们使用
C:这个时候,如果我们想使用无参构造方法,就必须自己提供
       推荐:自己给无参构造方法
D:无参构造方法也可以重载
成员变量赋值:
       A:setXxx()法
       B:带参数构造方法
如何调用构造方法
通过new关键字调用
格式:类名 对象名=new 构造方法(...)
类名作为形式参数:其实这里需要的就是对象.
类名作为返回值:返回的就是对象

您需要登录后才可以回帖 登录 | 加入黑马