第三周总结

跳转控制语句

break:只能在switch或循环语句中使用,不能单独使用.
    switch(表达式){
        case 值:
        语句1;
        break;
        ....
        default:
        语句n+1;
        break;
    }
continue:结束当前循环,并立即进行下一次循环.
    class Sum{
        public static void main(String[] args){
            int sum=0;
            for(int a=1;a<=10;a++){
                sum+=a;
            if(a==3){
                continue;
                }
                System.out.println(sum);
            }
        }
    }
return:一般不单独使用,在有具体返回值的方法中使用,结果一般都是具体的结果或值.
    class Function{
        public static void main(String[] args){
            int a=1;
            int b=3;
            int sum=sum(a,b);
            System.out,println(sum);
        }
        public static int sum(int a,int b){
            retrrn a+b;
        }
    }

方法

什么是方法
    使用功能代码块将功能{}包起来,并为之取一个名字,方法名符合小驼峰命名法;
格式
    有具体返回值
        修饰符  返回值类型  方法名(形式参数列表){
            方法体;
            return 值;
        }
    class Function{
        public static void main(String[] args){
            int a=1;
            int b=3;
            int sum=sum(a,b);
            System.out,println(sum);
        }
        public static int sum(int a,int b){
            retrrn a+b;
        }
    }
    没有具体返回值
        修饰符  void  方法名(形式参数列表){
            输出语句;
        }
    class Function{
        public static void main(String[] args){
            int a=1;
            int b=3;
            sum(a,b);
        }
        public static void sum(int a,int b){
            System.out.println(a+b);
        }
    }
注意事项
    方法与方法是平级关系,不能嵌套定义;
    定义方法的时候形参必须携带;
    调用方法的时候实参可以不带数据类型;
乘法表
    import java.util.Scanner;
    class PrintXing{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入行");
            int a=sc.nextInt();
            System.out.println("请输入列数");
            int b=sc.nextInt();
            xing(a,b);
        }
        public static void xing(int a,int b){
            for(int x=1;x<a;x++){
                for(int y=1;y<x;y++){
                    System.out.print(x+"*"+y+"="+x*y+"\t");
                }
                System.out.println();
            }
        }
    }   

数组

定义
    数组是一个能够存放同一数据类型数据的容器
定义格式
    数据类型[] 数组名;
    数据类型 数组名[];
    初始化
    数据类型[] 数组名=new 数据类型[长度];
自定义数组
    数组类型[] 数组名=new 数据类型[]{数据};
    简化
    数据类型[] 数组名={};
注意事项
    数组的定义不能动静结合;
数组就是引用类型,引用类型下面经常会出现异常:
    java.lang.ArrayIndexOutOfBoundsException:数组角标越界异常
    出现的原因:访问了数组中不存在的角标(索引值)
    解决方法:检查代码,更改索引值
    java.lang.NullPointerException:空指针异常
    引用类型的默认值都是null;
    String s = null ;  字符串是一种特殊的引用类型
    出现的原因:某一个对象已经为空了,null(没有堆内存地址),这个时候还要去访问元素或者调用
    这个对象的方法,那么就出现空指针;
    解决方法:使用逻辑判断语句,对该对象进行非空判断
数组的遍历
    class ArrayTest{
        public static void main(String[] args){
            int[] arr={12,56,43,21};
            printArr(arr);
        }
        public static void printArr(int[] arr)
            System.out.print("[");
            for(int a=0;a<arr.length;a++){
                if(a==arr.length-1){
                    System.out.println(arr[a]+"]");
                }else{
                    System.out.print(arr[a]);
                }
            }
        }
    }
冒泡排序
    class BubbleTest{
        public static void main(String[] args){
            int[] arr={12,56,43,21};
            printArr(arr);
        }
        public static void printArr(int[] arr)
            System.out.print("[");
            for(int a=0;a<arr.length;a++){
                if(a==arr.length-1){
                    System.out.println(arr[a]+"]");
                }else{
                    System.out.print(arr[a]);
                }
            }
        }
        public static void bubble(int[] arr){
            for(int num=0;num<arr.length-1;num++){
                for(int x=0;x<arr.length-1-num;x++){
                    if(arr[x]>arr[x+1]){
                        int temp=arr[x];
                        arr[x]=arr[x+1];
                        arr[x+1]=temp;
                    }
                }
            }   
        }
    }
数组的逆序
    class ArrayTest{
        public static void main(String[] args){
            int[] arr={12,56,43,21};
            printArr(arr);
            reverse(arr);
            printArr(arr);
        }
        public static void printArr(int[] arr)
            System.out.print("[");
            for(int a=0;a<arr.length;a++){
                if(a==arr.length-1){
                    System.out.println(arr[a]+"]");
                }else{
                    System.out.print(arr[a]);
                }
            }
        }
        public static void reverse(int[] arr){
            for(int a=0;a<arr.length/2;a++){
                int temp=arr[a];
                arr[a]=arr[arr.length-1-a];
                arr[arr.length-1-a]=temp;
                }
            }
        }
    }

面向对象

思想特点
    1.符合我们生活中的思想行为习惯
    2.让复杂的事情变得简单化
    3.由执行者变成了指挥者(指挥对象)
面向对象的三大特征
    继承,多态,封装
类
    能够描述一组事物的属性和行为的集合
类与对象的关系
    类:是一个泛指
    对象:才是当前事物的具体的体现
局部变量和成员变量的区别
    1.在类中的位置不同
        局部变量在类中方法外
        成员变量在方法中
    2.在内存中的位置不听
        局部变量在栈中
        成员变量在堆中
    3.生命周期不同
        局部变量随着方法的调用而存在,随着方法的消失而消失
        成员变量随着对象的创建而存在,随着对象的调用完毕,等待垃圾回收器空闲的时候回收
    4.初始化时机不同
        局部变量使用之前必须赋值;
        成员变量使用之前可以不用赋值,系统会给它默认初始化变量;
        对象名.成员变量 = 值;
类的使用
    class Phone{
        private String brand;
        private double price;
        private String color;
        private int memory;
        public void setBrand(String brand){
        this.brand=brand;
        }
        public String getBrand(){
        return brand;
        }
        public void setPrice(double price){
        this.price=price;
        }
        public double getPrice(){
        return price;
        }
        public void setColor(String color){
        this.color=color;
        }
        public String getColor(){
        return color;
        }
        public void setMemory(int memory){
        this.memory=memory;
        }
        public int getMemory(){
        return memory;
        }
        public void call(String name){
        System.out.println("给"+name+"打电话");
        }
        public void play(String name){
        System.out.println("在玩"+name);
        }
        public String send(String information){
        return "发短信的内容是"+information;
        }
        }
    class PhoneTest{
        public static void main(String[] args){
            Phone p=new Phone();
            p.setBrand("华为");
            p.setColor("blue");
            p.setPrice(4523.45);
            p.setMemory(256);
            System.out.println("我的手机品牌是:"+p.getBrand()+",它的颜色是:"+p.getColor()+",他的价格                    是:"+p.getPrice()+",他的内存是:"+p.getMemory()+"GB.");
            p.play("王者荣耀.");
            p.send("我在上自习.");
        }
    }

匿名对象

匿名对象:
    顾名知意:没有名字的对象
创建对象的格式:
    类名 对象名 = new 类名() ;
匿名对象的格式:
    new 类名() ;
    好处:
    1)节省内存空间
    2)开发中,匿名对象一般 使用"一次即可",使用完毕就立即垃圾回收器回收!
    3)手机移动端/Android/鸿蒙系统:基于Java语言
    ios系统:基于c语言
访问类的成员变量:
    new 类名().成员变量名;
    访问类的成员方法:没有具体返回值类型
    new 类名().成员方法名() ;

封装

private:私有的,不能直接访问的;
    特点:
        被private修饰的成员变量或者是成员方法,只能在本类中访问;
        外界类是不能直接访问的,间接可以通过公共的成员方法访问!
权限修饰符:
    private :最小
    public: 最大
封装:
    将一个真实类的属性私有化,同类可以直接访问,不同类不能直接访问,构造一个对外的公共访问类,间接访问.
    setXXX()/getXXX();
test:
class Phone{
    private String brand;
    private double price;
    private String color;
    private int memory;
    
    public void setBrand(String brand){
        this.brand=brand;
    }
    public String getBrand(){
        return brand;
    }
    public void setPrice(double price){
        this.price=price;
    }
    public double getPrice(){
        return price;
    }
    public void setColor(String color){
        this.color=color;
    }
    public String getColor(){
        return color;
    }
    public void setMemory(int memory){
        this.memory=memory;
    }
    public int getMemory(){
        return memory;
    }
    
    public void call(String name){
        System.out.println("给"+name+"打电话");
    }
    public void play(String name){
        System.out.println("在玩"+name);
    }
    public String send(String information){
        return "发短信的内容是"+information;
    }
}
class PhoneTest{
    public static void main(String[] args){
        Phone p=new Phone();
        p.setBrand("华为");
        p.setColor("blue");
        p.setPrice(4523.45);
        p.setMemory(256);
        System.out.println("我的手机品牌是:"+p.getBrand()+",它的颜色是:"+p.getColor()+",他的价格是:"+p.getPrice()+",他的内存是:"+p.getMemory()+"GB.");
        p.play("王者荣耀.");
        p.send("我在上自习.");
    }
}

this关键字

this:代表当前类对象的地址值引用

构造方法

什么是构造方法
    构造方法是一个特殊的方法,它的方法名与类名相同.
特点
    1.方法名与类名相同
    2.没有返回值
    3.没有void
    4.构造方法是重载的
作用
    对类中的数据(成员变量)进行初始化
无参构造方法(没有形参列表)
    public 类名(){}
有参构造方法(有参数列表)
    public 类名(数据类型 成员变量1,数据类型 成员变量2...){
        this.成员变量1=
        this.成员变量2=
    }
注意事项
    我们不提供无参构造方法和有参构造方法的时候,系统会默认给我们提供无参构造方法.
    假如我们写了有参构造方法,系统就不会提供无参按构造方法了,因此我们需要自己提供无参构造方法.
给成员变量(私有修饰)赋值几种方式:
    1)公共的访问方法setXXX(xx):赋值
    2)有参构造方法进行赋值
        public 类名(参数类型1 变量名1,参数类名2 变量名2...){
        this.成员变量名1 = 变量1;
        this.成员变量名2 = 变量2 ;
        ...
        }
​

一个标准类

class Phone{
	private String brand;
	private double price;
	private String color;
	private int memory;
	
	public phone(){}
	public phone(String brand,double price,String color,int memory){
		this.brand=brand;
		this.price=price;
		this.color=color;
		this.memory=memory;
	}
	public void setBrand(String brand){
		this.brand=brand;
	}
	public String getBrand(){
		return brand;
	}
	public void setPrice(double price){
		this.price=price;
	}
	public double getPrice(){
		return price;
	}
	public void setColor(String color){
		this.color=color;
	}
	public String getColor(){
		return color;
	}
	public void setMemory(int memory){
		this.memory=memory;
	}
	public int getMemory(){
		return memory;
	}
	
	
	public void call(String name){
		System.out.println("给"+name+"打电话");
	}
	public void play(String name){
		System.out.println("在玩"+name);
	}
	public String send(String information){
		return "发短信的内容是"+information;
	}
}
class PhoneTest{
	public static void main(String[] args){
		Phone p=new Phone();
		p.setBrand("华为");
		p.setColor("blue");
		p.setPrice(4523.45);
		p.setMemory(256);
		System.out.println("我的手机品牌是:"+p.getBrand()+",它的颜色是:"+p.getColor()+",他的价格是:"+p.getPrice()+",他的内存是:"+p.getMemory()+"GB.");
		p.play("王者荣耀.");
		p.send("我在上自习.");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值