二维数组定义的格式
int[][] arr = new int[3][2];创建3个1维数组每个1维数组中有2个元素 一维数组的个数由左边决定 一维数组内有几个元素由右边决定
arr 和[] 可以换位置
syso(arr[0]) 打印二维数组中角标为0的一维数组
引用数组类型默认为空null
这样才初始化完成
一维数组的长度不固定
arr[0] = new int [2];
arr[1] = new int[3];
arr[2] = new int[4];
打印 arr[][] 左边数据类型[[I 元素没有纬度0
如果没有制定一维数组的元素个数 打印二维数组的 一维数组为null 用这个一维数组指定它自己的元素 会出现空指针异常
arr.length 一维数组的个数 arr[1].length 角标为1的元素个数
int [][] arr= {{1,2,3},{4,5,6},{1,2,3}};
c 面对过程 c++面向对象 c# csharp
面向过程的思想强调的是过程( 动作) 动作是功能 功能由函数来体现
面向对象思想强调是对对象(实体)
特点:
1、面向对象是一种常见的思想,符合人们的思考习惯
2、面向对象的出现将复杂的问题简单化
3、面向对象的出现让曾经在过程中的执行者变成了对象中的指挥者
有功能所以找对对象 来帮我实现 自己不用做很方便 提高效率 比如找服务员 把动作(过程)封装在一个服务员这个对象上
只要存在的都是对象 等级不够(万物皆对象)JAVA之父詹姆斯·高斯林说出来就很强
有对象用对象 没对象就new一个 维护各对象的关系
面向对象特征:封装 继承 多态
一般名词是对象 人打开门是调用了门的开的方法 因为门最清楚门开的方法 内部的轴、页之类
而且很多人都能开这个门
用java语言通过类的形式对现实生活中的事物进行描述
对于事物的描述通常只关注两方面1、属性 2、行为
对象:其实就是该物实实在在存在的个体
类与对象之间的关系
类:事物的描述
对象:该类事物的实例 ,在java中通过new来创建
new出来是先有类 先看到对象再创建类是先有对象
JAVA中所有关键字都是小写 String 是一个类
默认的是default 不需要书写public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不 仅可以跨类访问,而且允许跨包(package)访问。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以 及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、 属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访 问。new Car();创建个对象
c = new Car(); 起个名字
Car c = new Car();c就是一个用类类型的引用变量指向该类的对象
c.run();要使用对象中的内容可以通过 对象.成员 的形式来调用
直接用run的话 不明确是哪个对象
定义类就是在定义类中的成员事物中的组成部分就是成员 一个成员变量、一个成员函数
成员变量对应属性 成员函数对应行为
不需要独立运行 不用定义主函数
局部变量在方法 或语句中有效 成员变量定义在类中作为整个类在源代码中体现
成员变量:
1、成员变量定义在类中,在整个类中都可以被访问。
2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
3、成员变量有默认初始化值。
局部变量:
1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、局部变量没有默认初始化值
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找。
堆内存中默认进行初始化 字符串初始化为null
对象的出现为了封装数据 分开封装
public static void show(Car c){类类型的变量一定指向对象,不然就是null
}
匿名对象就是没有名字的对象,new Car();其实就是定义对象的简化格式
new Car().run(); 运行完就结束
当对象对方法仅进行一次调用的时候就可以简化为匿名对象
匿名对象可以作为实际参数传递
show(new Car());
基本数据类型在函数中改变不影响在主函数中的数 ?弹栈掉了
encapsulation 封装 隐藏对象的属性 隐藏实现细节 仅对外提供公共的访问方式
private 私有(权限修饰符) 用于修饰成员 为了防止安全隐患 私有仅在本类中有效
好处:1、提高安全性2、将变化隔离 3、便于使用 4、提高重用性
(比如将主板封装在机箱中 CPU 改变也不影响使用)
不需要对外提供的都可以私有
私有仅仅是封装的一种体现形式
函数是JAVA中最小的封装体 类本身也是封装体 内部只要隐藏的都是封装体 便于使用 不用了解内部细节
一般是getXxx setXxx