JAVA第三周总结

上次补充

while循环语句补充

1.do-while的格式和执行流程

        do-whlie循环语句格式:

                初始化语句;

                do{

                循环体语句;

                控制体语句;

                }while(条件表达式);

        执行流程:

                1)初始化语句赋值

                2)执行循环体语句

                3)执行控制体语句

                4)条件表达式判断.如果条件成立,继续判定循环体....

                        条件表达式不成立,语句立即结束

新的方法

1.java.lang.Math方法

/*
    产生一个随机数---->使用jdk--->java.lang.Math:数学运算的工具类
                        产生随机数的功能
                        
    Math类:public static double random() :功能就是获取随机数的功能 (目前先用这个功能)
            要产生随机数:Math.random()---->获取的结果double [0.0,1.0) ,取不到1.0
*/

class MathDemo{
    
    public static void main(String[] args){
        //System.out.println(Math.random()) ;
        //要产生1-100之间的随机数
        int num = (int)(Math.random()*100+1) ;
        System.out.println(num) ;
    }
}

第三周总结

1.数组

概念:

只能够储存同类型的容器,在同一种数组中,元素的数据类型必须一样.

格式:

数据格式[] 数据名称;

数据格式 数据名称{};

数据类型:学习的基本数据类型;

数组的初始化:

1)动态初始化:

我们给定数组的长度,元素有系统(Jvm)默认初始化

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

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

常用的是第一种数据类型;

        创建一个数组对象

int [] arr = new int [3];

int arr [] = new int [3];

2)静态初始化:

 数据类型[] 数组名称 = new int[]{元素1,元素2,元素3...};
    数据类型 数组名称[]= new int[]{元素1,元素2,元素3...};
    简化格式:书写代码
        int [] arr = new int []{1,2,3,4,5...};
        int arr[] = new int []{1,2,3,4,5...}
注意事项:
    数组的初始化:要么动态出初始/要要么静态初始化,不能"动静结合"

    错误示例:
    int [] arr =new int [3]{1,2,3};

面线对象

1.什么是面线对象

詹姆斯高斯林Java之父 ("万物皆对象")

本质是基于面向过程完成的;

面向过程的代表语言:C语言
  完成某一件事情,从分析,到实现,都是自己亲力亲为完成的!
  举例:
      需求:获取数组中的最大值
      分析:
          1)有一个数组
          2)定义参照物
          3)遍历其他数组
          3.1)获取到每一个元素,依次和参照物进行比较
          如果后面的元素比参照物大
          后面元素就是最大值
          4)输出结果;
          
 面向对象的代表语言:Java,c++,python...
 面向对象跟面向过程:
     
     生活中处处皆对象
     举例:
    
            
       做饭:
           面向过程;
                去菜市场---->看一看--->讨价还价--->摘菜----->洗菜---->切菜--->加油---->炒菜---放调料---->出锅
           面向对象:
                找一个对象---->等待出锅
                
       面向对象的思想特点:
           1)更符合我们生活中思想行为习惯 
           2)让更复杂的事情简单化
        3)角色发生了变化:我们从执行者变成了指挥者!       
        
        什么是面向对象:    
            阐述下面向对象思想特点 + 结合我们中生活中的例子!

2.Java语言:面向对象语言---->它的设计原则

在程序中(符合生活中的场景),不断的创建对象,使用对象,指挥对象做事情(完成功能...)
举例:
    1)创建键盘录入对象:Scanner
    2)录入int类型/String类型数据

3.Java语言面向对象的三大特征

封装,继承,多态!

4.伪代码对比:面向过程/面向对象 ("将大象装进冰箱" 赵本山---)

将大象装进冰箱
伪代码:
面向过程
    1)测试类 main方法所在类
    2)分析:将大象装进冰箱
        定义三个方法:
            打开冰箱的方法
             将大象装进去的方法
            关闭冰箱的方法
                
                
     3)分别在main方法进行调用
                
           class Demo{
               public static void main(String[] args){
                   
                   //调用打开冰箱门的方法
                   open() ;
                   //将大象装进去
                   in() ;
                   //关闭冰箱门
                   close() ;
               }
               
               //定义一个打开冰箱门的方法
               public static void open(){
                   //使用输出语句,代替整个功能
                   System.out.println("打开冰箱门...") ;
               }
               
               //定义一个将大象装进去的方法
               public static void in(){
                   //...
                   System.out.println("将大象装进冰箱...") ;
               }
               
               //定义一个关闭冰箱门的方法
               public static void close(){
                   //...
                   System.out.println("关闭冰箱门...") ;
               }
           }     
 

//面向对象:"将大象装进冰箱"
//Java中最基本的单元类:
//分析: 有哪些名词  --- UML(名词提前法)----类
//分析:类中有哪些功能
//Demo类:测试类
//大象类 ---> "进去的功能"
//冰箱类 ---> "打开冰箱","关闭冰箱"
class Demo{//测试类
    public static void main(String[] args){
        
        //如果能够创建出冰箱类对象
        冰箱类对象.open() ;
        //如果创建出大象类对象
        大象类对象.in() ;
        冰箱类对象.close() ;

    }
}


//冰箱类
class 冰箱类{
    
        //定义一个打开冰箱门的方法
        public static void open(){
            //使用输出语句,代替整个功能
            System.out.println("打开冰箱门...") ;
        }
    
         //定义一个关闭冰箱门的方法
        public static void close(){
        //...
        System.out.println("关闭冰箱门...") ;
     }
}
//大象类
class 大象类{
      //定义一个大象进去的方法
        public static void in(){
               //...
          System.out.println("大象进去...") ;
        }
}

类与对象的关系

1.类

概念:能够描述一组事物的属性和行为的集合---->类


类------>能够描述现实世界真实存在的 "事物"

学生事物
        属性:性别,年龄,姓名,学号,身高,班级,体重...                   能够描述一个学生具体特点
        行为:     主要的行为:学习, 吃,睡,玩..                          能够描述学生干什么

长方形事物
        属性:长和宽
        行为:计算它的周长/面积....
        
        
汽车事物
        属性:品牌,价格,车身颜色,100m速度,非承载式/承载式...
        行为:旅游,拉货.....
        
        
现在使用Java代码的方式 描述现实世界存在的事物    
Java中最基本的单元:类        -----> 事物
        成员变量------->       描述事物的属性
        成员方法(非静态的)------->       描述事物的行为
        
        成员变量: 在类中,方法外;
        成员方法: 之前怎么定义方法,现在还怎么写,不过,去掉static关键字
                    public 返回这里类型 方法名(形式参数列表){
                            业务体
                            //有具体结果1)return 结果  ;
                            
                            //没有具体结果:输出 打印...
                    }
        
                    定义:
                            两个明确
                            1)明确返回值 :有-->给具体类型 ,没有:void 代替 输出结果
                            2)明确参数类型,以及参数个数
                                    具体情况,具体分析

2.类与对象的关系

类----描述真实事物的
            
                            
        学生事物                
            属性:
                姓名
                年龄
                住址
                ..
            行为:
                学习JavaSE
            
            
         学生类
            class Student{
                //成员变量 ---事物属性
                String name ;//姓名
                int age ;//年龄
                String address;//住址
                //...
                
                //成员方法----事物的行为
                public void study(String name){
                    System.out.println("正在学习"+name) ;
                }
            }        
    什么是对象?
            体现出 "具体的事物"       因为类---描述事物----概括的事物("总称")
                    具体的学生:高圆圆,42,鄠邑区
                    
        在测试类中使用:main方法所在类            
                    
        代码体现:
            格式:
                类名 对象名  = new  类名() ;
                
                给具体事物属性赋值
                对象名.成员变量 = 根据类型赋值;
                调用具体事物的行为
                对象名.成员方法名() ;

面向对象入门(2)

1.局部变量

1)在类的书写位置:在方法定义中或者是在方法声明上/

2)在内存中的位置:在栈内存中.

3)生命周期:随着方法的调用而存在,随着方法调用结束而消失.

4)初始化时机:要么先定义,使用钱必须初始化;要么直接初始化.

2.成员变量

1)在类的书写位置:在类中,方法外

2)在内存中的位置:在堆内存中

3)生命周期:随着对象的创建而存在,随着对象的调用完毕,等待垃圾回收器空闲时候回收,不会立即消失..

4)初始化时机:可以不赋值,系统默认对成员变量初始化   也可以通过对象名.成员变量 =赋值.

3.静态变量

    1.所属范围不同。静态变量是属于类范围的
    2. 存活时间不同。类的一生有着静态变量的伴随
    3. 存储位置不同。静态变量时存储在方法区里的静态区
    4. 调用方式不同。静态变量可以通过类名调用,也可以通过对象来调用

4.匿名对象

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

封装

1.特点

private:私有的,不能直接访问的;
特点:
    被private修饰的成员变量或者是成员方法,只能在本类中访问;
    外界类是不能直接访问的,间接可以通过公共的成员方法访问!
        
        权限修饰符:
                private :最小
                public: 最大

this关键字

定义

定义:代表当前类对象的地址值引用.

构造方法

构造方法是一种特殊的方法,方法名和类名一致

特点:
1):方法名和类名一致
2):构造方法没有返回值类型
3)连void都没有
            
            构造方法是重载的!
            
            方法重载:
法名相同,参数列表不同,与返回值无关!
参数列表不同:
    参数个数
    参数类型
    考虑类型先后属性

无参类型

没有参数,系统自己提供.

有参类型

有具体的参数类型.


 

一般java中报错的代码问题:

1.数组角标越界异常

ArrayIndexOutOfBoundsException

2.空指针异常

NullPointerException

3.出现问题的做法

1)编译时期异常:jvm检查语法不通过; 语法格式存在问题
                    举例:
                            同一个变量被定义多次
                            数组格式写错
                            ...
                            
            
        2)运行时期异常:开发者:代码书写不严谨导致的问题
        
        
                键盘录入:代码书写---->录入int类型
                                    int num = 键盘录入对象.nextInt() ;
                                    
                                    
        java.lang.ArrayIndexOutOfBoundsException:数组角标越界异常
        出现的原因:访问了数组中不存在的角标(索引值)
        如何解决:检查代码,更改索引值
        
        
        
        
        java.lang.NullPointerException:空指针异常
        引用类型的默认值都是null;
        String s = null ;  字符串是一种特殊的引用类型
        出现的原因:某一个对象已经为空了,null(没有堆内存地址),这个时候还要去访问元素或者调用
        这个对象的方法,那么就出现空指针;
        如何解决:
            使用逻辑判断语句,对该对象进行非空判断


                

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值