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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肆月 初级黑马   /  2018-5-2 09:34  /  844 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
* 面向对象思想:
*                 面向对象是基于面向过程的编程思想。
*                
*
*                 面向过程:强调的是每一个功能的步骤
*                 面向对象:强调的是对象,然后由对象去调用功能
*               
*面向对象的思想特点:
*                A:是一种更符合我们思考习惯的思想
*                B:可以将复杂的事情简单化
*                C:将我们从执行者变成了指挥者
*
*举例:
*                买电脑:
*                        面向过程:我要买电脑--我要明确买电脑的意义--上网查对应的参数信息--去中关村买电脑--讨价还价--买回电脑
*                        面向对象:我要买电脑--班长去给我买电脑--买回电脑
*                洗衣服:
*                        面向过程:把衣服脱下--找一个盆--放洗衣粉--加水--浸泡--揉--清洗--晾干
*                        面向对象:把衣服脱下--打开全自动洗衣机--放衣服--启动--晾干
*                       
*类:是一组相关属性和行为的集合,是Java语言最基本的单位。
*对象:类的具体体现
*                举例:  类  --> 学生
*                        对象 --> 班长
*
*类: 属性(基本属性):由成员变量实现
*     行为(能够做什么):由成员方法实现
*
*一个学生类:
*
*学生:
*                属性:姓名,年龄
*                行为:学习,吃饭
*
*学生类:
*                成员变量:姓名,年龄
*                成员方法:学习,吃饭
*
*成员变量:与一般变量的定义一样,
*                位置不同:类中,方法外
*                初始化值:不需要给初始化值
*
*成员方法:与一般方法的定义一样
*                去掉static关键字       
*
*static关键字:
*        A:概念:
*                一个修饰符,用于修饰成员变量和成员方法,不能修饰构造方法
*        B:特点:
*                a:静态成员属性被该类下的所有的对象共享
*                b:可以直接使用类名来调用
*                        eg:类名.静态修饰符修饰的变量名
*                            类名.静态修饰符修饰的方法名
*                c:静态所修饰的成员加载优先于对象,随着类(.class文件)的加载而存在于方法区中的静态区域,只加载一次
*
*static的注意事项:
*        静态方法:
*                可以调用静态的成员变量和成员方法
*                不可以调用非静态的成员变量和成员方法
*                *:静态方法只能调用静态的成员变量和成员方法
*
*        非静态方法:
*                可以调用静态的成员变量和成员方法
*                也可以调用非静态的成员变量和成员方法
*                *:非静态方法则都可以调用
*
*        *:在静态的方法中没有this对象,因为静态的方法随着类的加载而存在,优先于所有对象
*
*        static的优点:
*                A:对对象的共享数据提供单独空间的存储,节省空间,没必要每个对象都存储一份
*                B:可以直接被类名调用,不用在堆内存里创建对象
*
*        static的缺点:访问有局限性,静态只能访问静态
*               
*        static使用地点:用于工具类中,方便直接通过类名调用
*
*
*数组:存储多个同一种类型的数据的容器
*
*定义格式:
*                 A:数据类型[] 数组名;(int[] arr; 定义了一个int类型的数组,数组名是Arr)
*                 B:数据类型 数组名[];
*数组初始化:
*                         A:为数组开辟内存空间,并为数组中的每个元素富赋予初始值
*                         B:两种初始化方式:
*                                 a:动态初始化                只给出长度,由系统给初始值
*                                 b:静态初始化                给出初始值,由系统决定长度
*
*动态初始化:
*                         数据类型[] 数组名 = new 数据类型[数组长度];(数组长度的叫法:索引)
*
*静态初始化的格式:
*                         数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
*                        
*                         简化格式:
*                         数据类型[] 数组名 = {元素1,元素2,元素3...}
*
*数组两个常见小问题:
*                         1:ArrayIndexOutOfBoundsException(数组索引越界异常)
*                                 原因:访问了不存在的索引
*                         2:NullPointerException(空指针异常)
*                                 原因:数组指针已经不再指向堆内存对应的地址了,则访问不了数组名对应的值
*
*length: 用于获取数组元素个数
*                 格式:数组名.length
*
*
*
*二维数组:其实就是元素为一位数组的数组。
*
*定义格式:
*                 A:数据类型[][] 数组名;
*                 B:数据类型 数组名[][];
*                 C:数据类型[] 数组名[];
*
*初始化:
*                 A:动态初始化
*                         数据类型[][] 数组名 = new 数据类型[m][n];
*                         m表示的是二维数组中一维数组的个数
*                         n表示的是一维数组中的元素个数
*                 B:静态初始化
*                         数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},...};
*                         简化格式:
*                         数据类型[][] 数组名 = {{元素...},{元素...},...};

                C:*动态初始化:
                        数据类型[][] 数组名 = new 数据类型[m][];//可以先定义二位数组中一维数组的个数
                        //再逐个定义每个一维数组的长度
                        数组名[0] = new 数据类型[a];
                        数组名[1] = new 数据类型[b];
                        ...
                        数组名[m-1] = new 数据类型[n];
                        //若a = 0,则数组名[0]是一个有地址值的无元素的引用
                                arr[0] = new int[0];//则打印arr[0]的地址
                          若不给数组名[x]定义一位数组的长度,则为null
                                不给arr[x]定义一位数组的长度//打印null       
*/

0 个回复

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