知识点总结

本文介绍了Java中的基本流程控制语句,包括if...else、三元运算符和switch的使用注意事项。同时讲解了for、while循环的执行流程和区别,以及死循环的常见形式。此外,还涉及方法定义、返回值处理、数组的初始化、动态与静态初始化,以及方法重载的概念。文章进一步讨论了面向对象的封装思想,private关键字的作用,并给出了水仙花数、数组遍历和冒泡排序的程序示例。
摘要由CSDN通过智能技术生成

一:知识点

1:if...else...格式和三元运算符的区别?

三元运算符只是一个运算符号,不是流程控制语句,在三元中不能输出打印值,可以操作具体的数据值(结果最终是数据值);而if...else...流程控制语句,范围远远大于三元运算符既可以使用具体数据值,也可以是打印内容;三元运算符能够使用的一定能够if...else...if...else...能够实现的,不一定能够使用三元!

2:switch语句使用的注意事项:

1)case语句里面是有break,

如果没有书写break,会造成"case传统"

2)case语句后面的值只能是常量值,不能是变量值

(Java是一个强类型语言:语法结构很严谨)

3)关于default语句

它可以在语句中的任何位置,不影响switch语句的执行流程!

但是如果在语句中,那么break不要省略!(考点)

如果default语句它在语句的末尾,break可以省略

4)switch语句的结束条件:

1)语句break结束

2)程序默认执行到末尾!(顺序结构语句都是依次由上而下,末尾结束!)

3:for语句

for(初始化语句;条件表达式;控制体语句或步长语句){

循环体语句;

}

执行流程:

1)先初始化语句进行赋值

2)判断条件表达式是否成立,如果成立,执行循环体语句

2.1)继续执行控制台语句或者步长语句 对初始化语句的变量进行自增或者自减

2.2)继续判断条件表达是否成立,如果成立,按照上面 这种方式执行;

2.3)如果变量自增或者自减到条件表达式不成立为止,循环语句结束!

4:while循环

基本格式:

while(条件表达式){

循环体语句;

控制体语句或者步长语句;

}

执行流程:

1)初始化语句进行变量赋值

2)判断条件表达式是否成立,成立,执行循环体语句,依次执行控制体语句(对变量控制)继续回到2)进行判断

5:while和for的区别?

共同点:

都是使用循环思想解决一些问题

不同点:

1)格式本身不同

for(初始化语句;条件表达式;控制体语句){

循环体语句;

}

初始化语句;

while(条件表达式){

循环体语句;

控制体语句;

}

2)是否明确循环次数

for循环:明确循环次数优先for循环,(for还是很频繁使用的)

while循环:不明确循环次数,使用while循环

3)从内存角度考虑销毁不同:

for循环结束,里面的变量及时释放了,所以不能在访问for中的变量

whlile循环结束,依然可以访问里面变量,

所以消耗资源相对for循环大一些!

6:常见的两种死循环格式

1)for(;;){ //jdk源码中比较多

循环体...

}

2)while(true){ //推荐

循环体...

}

7:在Java中有返回值类型的方法的定义以及调用格式中注意事项:

1)方法和方法平级关系,不能在一个方法中去定义另一个方法!

2)定义方法的返回值类型和main方法中调用方法的时候,接收结果类型不匹配!

3)Java是强类型语言,在定义的方法时候,形式参数名前面必须有参数类型

4)必须有return语句,没有就会编译报错!

  1. 定义方法的时候,有{号地方不能有分号;有分号;,不能有{左大括号

8:没有返回值类型的定义格式:

public static 返回值类型 方法名(形式参数类型1 参数名1,参数类型2 参数名2...){

方法逻辑体...

return 结果;

}

public static 返回值类型 方法名(形式参数类型1 参数名1,参数类型2 参数名2...){

方法逻辑体...

return 结果;

}

9:方法重载

Java中规定:如果方法名相同,参数列表不同,与返回值无关---

这一系列的方法都称为"方法重载

10:数组

Java提供一种容器--->可以存储同一种类型的元素--->数组

数组:必须满足这些元素数据类型必须是同一种类型!

数组定义以及初始化

定义格式:

1)数据类型[] 数组名称;

2)数据类型 数组名称[] ;

11:动态初始化

给定数组长度,系统(jvm)默认分配数组元素内容;

格式:

数据类型[] 数组名称 = new 数据类型[数组长度] ;

数据类型 数组名称[] = new 数据类型[数组长度] ;

12:静态初始化

给定数组元素,长度由系统给定

原本格式:

数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ;

数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3....} ;

简写格式

数据类型[] 数组名称 ={元素1,元素2,元素3....} ;

数据类型 数组名称[] = {元素1,元素2,元素3....} ;

注意事项:

不能既动态初始化,又静态初始化(动静结合)

13:冒泡排序

思想:

两两比较,将大的值往后方法,第一次比较完毕,最大值出现在最大索引处!

14:形式参数

方法的形式参数如果是基本数据类型,形式参数的改变不影响实际参数

方法的形式参数如果是引用数据类型(数组,类,接口),形式参数的改变会直接影响实际参数

String类:字符串,它是一个特殊的引用类型,它作为形式参数传递,和基本类型作为形式参数效果一致!

15面向对象思想特点:

1)更符合生活中的思想行为习惯!

2)让复杂的事情简单化!

3)让我们从执行者变成指挥者!(角色变化):

16:创建对象的格式:

类名 对象名 = new 类名() ;

对象名.成员变量名 = 值; (跟成员变量类型一致);

对象名.方法名() ;调用方法,展示这个具体事物有什么功能

17:private关键字的特点:

1)被private修饰的成员变量/成员方法(非静态),只能在本类中访问,外界类不能访问!

2)虽然被私有修饰的成员变量以及成员方法(非静态)不能直接访问,但是都可以间接的通过"public"公共访问访问!

18:封装:

一个事物的私有化(private),外界类不能直接使用,

对外需要通过公共的访问setXXX(参数)/getXXX()赋值(成员变量赋值)

19:局部变量和成员变量的区别?

区别:

1)类中的书写位置不同

成员变量:在类中,方法外

局部变量:在方法定义中或者方法声明上

2)jvm内存位置不同

成员变量:在堆内存中

局部变量:在栈内存中

3)生命周期不同:

1)成员变量:随着对象的创建而存在,随着对象的创建完毕并且使用完等待垃圾回收器回收(不会立即回收)而消失!

2)局部变量:随着方法调用而存在,随着方法调用结束而消失

4)初始化值不同:

1)成员变量:存在系统默认初始化,也可以显示初始化

2)局部变量:总之:在使用局部变量之前,必须赋值,不赋值不行!

二:程序题

1:水仙花数

class ForTest4{
    public static void main(String[] args){
        int count = 0 ;
        for(int x = 100; x<=999; x++){
            int ge = x % 10;
            int shi = x /10%10;
            int bai = x /10/10 %10;
            if(x==(ge*ge*ge+shi*shi*shi+bai*bai*bai)){ 
                count ++ ;
                System.out.println("第"+count+"次的水仙花数是:"s+x) ;  
            }
        }
        System.out.println("水仙花数共有:"+count+"个");
        
    }
}

2:遍历数组

public static void printArray(int[] arr){
        System.out.print("[");
        for(int x=0;x<arr.length;x++){
            if(x==arr.length-1){
                System.out.println(arr[x]+"]");
            }else{
                System.out.print(arr[x]+", ");
            }
        }
    }

3:冒泡排序

public static void bubleSort(int[] arr){
for(int x = 0 ; x < arr.length-1;x++){
        for(int y = 0 ; y < arr.length-1-x;y++){
            if(arr[y]> arr[y+1]){
                int temp = arr[y] ;
                arr[y] = arr[y+1] ;
                arr[y+1] = temp ;
            }
        }
    }
}

4:private this set,get 方法的加入

public class Phone {
    private String brand;
    private int price;
    private String color;
    private String memory;

    public Phone() {
    }

    public Phone(String brand, int price, String color, String memory) {
        this.brand = brand;
        this.price = price;
        this.color = color;
        this.memory = memory;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getMemory() {
        return memory;
    }

    public void setMemory(String memory) {
        this.memory = memory;
    }
}
public class PhoneDome {
    public static void main(String[] args) {
        Phone a = new Phone("华为",5000,"白色","128");
        System.out.println("这个手机品牌是"+ a.getBrand()+"价格是"+ a.getPrice()+
                "颜色是"+ a.getColor()+"内存是"+ a.getMemory());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值