面向对象
-
java是一门面向对象的编程语言,在java中万事万物皆对象。
- 扩展,在linxu中完事万物皆文件
-
面向过程:就是分析出实现需求需要的步骤,通过一些方法来一步一步实现
-
面向对象:行为化,把整个需求按照特点或功能来划分需求,将这些存在共性的部分会封装成类,(类实例化之后就是对象)让对象去解决问题。
-
举一个例子,七夕要送女朋友一个包,用面向对象的思想
- 找个店,买个包,不管是商家还是包都是现实中真是存在的事物,商店或者包就称之为对象,不管是你买包,还是商家卖包没人关心。
-
面向过程思想:找原材料自己切割,自己缝制,什么都自己干,
-
其实高级的编程语言就会向着人的思考靠近。
-
这是别人给我们创建的对象,在开发中基本生我们大量的会创建对象给自己用
-
准备开个4S店,需要场地,车辆,
- 先说说怎么用代码怎么描述一辆车
- 描述信息:属性,从代码的角度来说就是变量,如品牌brand颜色color长度,宽度,价格
- 问题又来了,怎么才能描述好几个车,这时就可以使用面向对象来使用,车比较多可能就需要很多的数组来维护车的信息。
- 这时我们就要用面向对象的思想,我们要将车的属性封装为一个对象,
- 先说说怎么用代码怎么描述一辆车
-
在java中面向对象中的特征
- 分装
- 继承
- 多态
- 抽象
封装
- 如果把变量直接声明在类中,叫做成员变量,(作用和全局一个作用)说明变量时类的成员,如果把变量声明在一个方法中叫局部变量,说明只能在某一个部分好使。成员变量又可以叫做属性。
- 重点:之前我们学习过八种基本数据类型,从今天开始我们的数据类型就更多了,我们能够遇见的类包括刚刚创建的car类是一种数据类型,所有的类都是引用数据类型,只要有new就不是空,就有了地址
- 赋值的时候除了String之外其余的引用数据类型都需要new
- 我们需要了解两块内存空间,
- 栈:存变量和基本数据类型,
- 堆:new出来的东西都在堆中
- 引用的数据类型默认值是null
成员方法
//publid:访问权限修饰符
//void:没有返回值,
//run():方法名,
//():传参数
//参数可以有多个,用,隔开
public void run(int you){
//定义了一个一个跑的方法
//省略了大火,挂挡
if(you==92){
System.out.println("92号油跑的很快");
}else if(you==95){
System.out.println("95号油跑的很快");
}else{
System.out.println("你加的假油吧");
}
System.out.println(brand+"在漂移");
}
-
标识符的命名规则:
- 类:大驼峰
- 变量名,方法名:小驼峰
-
java中的传参必须要定义类型,
-
在声明方法时()里的参数叫做形式参数,形参可以当作局部变量使用,调用方法时传进去的参数叫做实际参数。
-
return:终止方法继续执行,返回方法的返回值
-
访问权限修饰符:
-
public:公共的,只要在同一个工程中都可以掉用
-
protected:受保护的,
-
默认的:友好的,
-
private:私有的,最小只有在当前类可以用
-
如果一个方法上有static要调用一个非static的方法,就只能创建对象使用对象.方法调用
-
自己调自己:递归。问题:错误,栈溢出
-
方法的重载
-
方法名相同
-
参数不同才能构成方法的重载
-
参数的类型不同,
-
参数的个数不同
-
参数的顺序不同
-
与返回值类型无关
-
与参数名称无关
-
与访问权限修饰符无关
-
与方法体无关
-
方法的重载一定发生在同一个类中,
好处:为了把功能相似或是相同的的方法
- 不定长参数
- 参数列表中,至多有一个不定长参数
- 不定长参数必须在最后位置。
访问权限
- public:公共的,只要在同一个工程中都可以掉用
- protected:受保护的,
- 默认的:友好的,
- private:私有的,最小只有在当前类可以访问
构造器(构造方法)
- 语法:访问权限修饰符 方法名(就是类名){}
特点:
- java在new对象的是侯,看对象所在的类有没有构造器,有什么样的构造器,如果没有构造器,无法创建对象,
- 每个类会有一个默认的无参构造器,
- 构造器什么时候使用的:对象被实例化时使用的。类名 对象名=new 构造器();
- 我们创建对象时是通过构造器创建的
- 如果一个类中显示的声明了一个构造器,原来默认的构造器就没了,只要写了构造器,按你的来,没写按他的来,