二维数组的数据类型是引用类型
java中的多维数组存的类型是引用,所以可以有阶梯型的数组
类和对象
什么是类?
(自行车的设计图)
什么是对象?
(一辆辆的自行车)
为什么要设计类和对象的机制(面向对象编程)
状态+行为
属性 方法
面向对象的三大特性
1.封装 2.继承 3.多态
语法
1.定义类的语法
修饰符(modifier) class 类的名称(每个单词的首字母大写){
1.属性
2.方法
3.构造方法
2.如何定义属性
修饰符(modifier)变量类型 变量名称=;
默认值:
3.如何定义方法
修饰符(modifier)返回值类型 方法名称(形参列表){
实现
}
public static int rotate(int[] a,int k ){
}
4.如何定义构造方法
修饰符(modifier)类名称(形参列表){
(可以方法重载)
}
2.构造对象的方法|对象实列化的语法
create object instance(动词)
类名称 变量名称=new 类名称(实参列表);
(引用类型-类引用)
一个文件中只能有一个public 的类
类定义在方法区
1.计算对象需要内存的大小,开辟空间,初始化为0
将值初始化为0
2.调用构造方法,对属性初始化
3.构造方法调用结束,返回一个指向新对象的引用
person tmp=新的对象
对象在堆区 变量在栈区 类(方法区)
属性在堆区
class student{
} 没有明确定义过构造方法
编译器自动给你补一个构造方法
public studebt(){
}
一旦你定义过构造方法了,无论是什么样的构造方法,默认这个无参
构造方法就不添加了
对象中存储的最主要的是属性,也可以找到方法区中对象相对应的类
语法
如何访问对象的属性
在类的内部
在类的外部
如何调用对象的方法
在类的内部
在类的外部
内部
属性 直接通过属性名称访问即可
方法 直接通过方法名称调用即可
外部
属性 引用.属性名称
方法 引用.方法名称(实参列表)
嵌套调用
链式调用
person p=null;
定义一个没有指向任何对象的person类型的引用(类类型的引用)
Person p=new Person()
1.定义了一个Person类型的对象
定义了一个指向Person类型的对象的Person类型引用(类类型引用)
引用类型和指向类型的对象是两回事
this 关键字的使用
1.在构造方法中调用其它构造方法。调用语句必须出现在第一行
2.通过this 访问属性或方法
(一般出现在发生了命名遮挡的时候)
3.this代表的是当前对象的引用(current object)
重点 普通属性和普通方法,其实都绑定着一个隐含的对象。
标准输入 stdin 键盘
标准输出 stdout 屏幕
标准错误输出 stderr 屏幕