二维数组和认识面相对象
数组中定义数组,第二维数组是第一维数组的每一个数据
tt
tt*定义:
ttt动态:
tttt数据类型[][] 数组名 = new 数据类型[外层一维的长度][内层二维长度]; 一维二维同时创建
tttt数据类型 数组名[][] = new 数据类型[外层一维的长度][];
ttt静态:
tttt数据类型[] 数组名[] = new 数据类型[][]{{1,2,3},{4,5}...};
tttt数据类型[] 数组名[] ={{1,2,3},{4,5}...};
ttt
tt二维数组的使用方式:
ttt数组名[一维][二维]
tt
tt*遍历:
ttt循环嵌套
tttt普通循环和增强for相互嵌套
tttt
tt定义和遍历
tArrays :封装了一些用来操作数组的常用功能
t
t1.导包 java.util包下的Arrays,需要导包
t2.Arrays.功能名字()
关键字this : 代表当前对象,存储当前对象的地址
t构造器的首行,调用本类中的其他构造器
ttthis(参数列表);
* 区分同名变量问题:
t成员变量和局部变量同名问题
t当没有成员和局部同名问题的时候,默认所写的price和brand指代成员变量,因为只有成员变量叫这个名字.相当于price和brand前面金省略了this.
t如果存在同名问题,默认就近原则找局部,如果指代成员变量,前面必须添加this.用来区分
* 注意:
t1.两个构造器之间不能相互调用
t2.构造器中如果使用this,默认指代当前创建的对象
t3.方法中使用this,指代调用成员方法的对象
t4.this不能和static一起使用
面向对象
一.面向对象,面向过程的区别?
tt面向对象,面向过程是一种思想,思维方式
tt面向过程: 关注"者这件事情的实现步骤?|应该如何实现?"然后一步一步实现就可以了
tt面向对象:关注"我应该找谁来完成这件事情?"他如何实现,我们不关注,只关注这个对象
t二,面向对象的优点:
tt1.将复杂的问题简单化
tt2.面向对象更符合现实生活中的管理者的角度,面向过程更符合执行者
tt3.面向对象更贴近于生活
tt面向对象依托面向过程
t
t三.如何使用面向对象的思维方式进行编程:
tt类:一系列事物的共性|模板|图纸 对象:描述表示生活中的具体事物,根据类去创建对象
t
t四.如何自定义类
tt定义手机类:考虑2个问题
ttt1.手机有什么功能|手机能做什么? 动词|功能---成员方法定义功能
tttt打电话,玩游戏,聊天,上网...
ttt2.手机有什么属性|特点|特征?
tttt颜色,品牌,尺寸,价钱...tt 名词|属性---成员变量
new 做的3件事情:
t1.堆为对象开辟空间,成员变量会跟随对象进入到堆内存中
t2.调用类型的构造器,为对象初始化信息
t3.将地址返回给引用
构造器|构造函数|构造方法:特殊的方法
t作用:为对象初始化信息 (对象的成员属性赋值)
* t定义:
tt修饰符 类名(参数列表){
ttt...
tt}
* 注意:
t1.构造器没有返回值类型,没有void
t2.构造器的名字要与类名保持一致
t3.可以有return,不写return,但是不能返回数据,只能提前结束方法的作用
t4.没有显示定义构造器,编译器会默认提供一个空构造
t5.如果有显示定义任何构造器,编译器就不会为你提供任何构造器
t6.构造器无法通过其他方式调用,只能跟随new一起使用
t7.构造器不能和abstract,final,static一起使用
* 以后在写自定义模板类时候,一般都存在空构造,按需添加带参构造和使用