java基础知识点 第十章

1.不使用递归,计算N的阶乘。
public class RecursionTest01
{
  public static void main(String[] args){
     int n=5;
     int retValue=method(n);
     System.out.printIn(retValue);//120
  }
  public static int method(int n){
      int result=1;
      for(int i=n;n>0;i--){
          result*=i;
      }
      return result;
  }
}
使用递归:
public class RecursionTest01
{
  public static void main(String[] args){
     int n=5;
     int retValue=method(n);
     System.out.printIn(retValue);//120
  }
  public static int method(int n){
      if(n==1){
          return 1;
      }
      return n*method(n-1);
  }
}
                          【面向对象】
1.面向对象与面向过程的区别:
面向过程:没有任何独立体的概念,只有 因为所以..各种因为所以关联在一起,实现所有因果关系,
这种称为面向过程,【关注的是步骤中因果关系的实现,没有独立体的概念】,以因果关系为核心,
小的因果关系构成小的步骤,小的步骤之间因为因果关系构成小的模块,模块与模块之间因为因果关系
构成大的系统,只要有一个因果关系发生断裂,整个软件就不能用了。关注整个流程是怎么走的?

面向对象:主要关注在对象上,把独立体看成对象,把关注对象造出来,把对象聚到一块,实现某一
功能,不关注对象的底层实现原理具体的实现细节,关注对象的功能,对象之间有很低的关联程度,
都有独立体的概念,独立体就是所说的对象
:把现实的世界分割成不同的单元,每个单元都是一个独立的对象,给一个环境让对象驱动起来形成
系统,称为面向对象

面向过程:主要关注点是实现的具体过程,因果关系 如:集成显卡的开发思路
优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低
缺点:采用面向方式的方式开发很难解决非常复杂的业务逻辑,另外面向对象过程的方式导致软件元素
之间的【耦合度】非常高,只要其中一环出现问题,整个系统受到影响,导致最终的软件【扩展力】差。
因为没有独立体的概念,无法达到组件复用

面向对象:主要关注点是主要关注对象【独立体】能玩层那些功能 如:独立显卡开发思路
优点:耦合度低,扩展能力强,更容易解决现实世界中复杂的业务逻辑,组件复用性强
缺点:前期投入成本法高需要进行独立性的抽取,大量的系统分析设计

C语言是纯面向过程 C++半面向对象 java纯面向对象,现在出现的一些新的编程语言,都是面向对象的
人们在认识现实世界的时候以面向对象的方式,面向对象更符合人的思维方式

2.面向对象的三大特征:
封装、继承、多态
生命周期当中面向对象的三个阶段
*面向对象的分析:OOA
*面向对象的设计:OOD
面向对象的编程:OOP

3.类和对象的概念
类:在现实世界当中不存在的,是一个模板,是一个概念,是人类大脑思维抽象的结果
类代表了一类事物,在现实世界当中,对象A与对象B之间具有共同的特征,进行抽象总结出一个模板
这个模板称为类 例如人:身高、姓名、年龄... 汽车:颜色、质量、材质...
对象:是实际存在的个体,现实世界当中实际存在的

描述一下整个软件开发的过程
-程序员先观察现实世界,从现实世界中寻找对象
-寻找了N个对象之后,发现了所有的对象都有共同的特征
-程序员在大脑中形成一个模板【类】
-Java程序员通过代码来表述一个类
-java程序中有了一个类的定义
-然后通过类就可以创建对象
-有了对象之后就可以让对象直接协作起来形成一个系统

类---到对象-叫做实例化instance
对象---到类-叫抽象

类描述的是对象的共同特征

一个类主要描述的是状态+动作
状态信息:一个类的属性 名字、身高、性别
动作信息:一个类的方法 吃、喝、唱歌、跳舞
类{
   属性;//状态信息
   方法;//动作信息
}
注意:状态和动作具体到某个对象上之后,发现最终的结果不一样。对象和对象之间的有共同的特征,
但是具体到对象之后数据有差异。
4.类的定义
语法结构:
[修饰符列表] class 类名//(extend继承、impolements实现){
}
学生类:,描述学生对象的共同特征
状态信息:            动作信息:
*学号【int】            *吃饭
*名字【String】         *睡觉
*性别【boolean】        *玩
*年龄【int】            *唱歌
*住址【String】         *跳舞

重点:属性之间通常采用一个变量形式来完成定义的
public class Student
{   属性描述对象德状态信息
    //在类体当中,方法体之外定义的变量称为‘成员变量’
    成员变量没有赋值,系统默认值,一切0看齐
    int no;
    String name;
    boolean sex;
    int age;
    String address;
    方法描述的动作信息
    //略
}
引用数据类型:
String.class SUM提供
System.class  SUM提供
Student.class  程序员自定义
User.class  程序员自定义
Product.class  程序员自定义
java语言中所有的.class都属于引用数据类型
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵俺第一专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值