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 构造方法(...) 类名作为形式参数:其实这里需要的就是对象. 类名作为返回值:返回的就是对象
|