面向过程的编程思想
    解决问题的时候按照一定的过程流程
    以过程为本 复用性较低 增加了很多代码的冗余
    比如 把大象装冰箱分三步:
    1.开冰箱 2.大象装里面 3.关冰箱
    过程已经写死了 要是换成其他动物装冰箱 上述的步骤就不适用 需要重新写

    面向对象的编程思想
    解决问题的时候按照现实生活中的规律来考虑问题
    在解决问题的过程中 考虑的是有多少个对象参与进来
    即 实体是动作的支配者 没有实体 动作就发生不了
    ============================================================
    类与对象
    类——-抽象笼统的概念 描述一类事物 具有相同的特征(属性)和行为(方法) 比如 人类
    人类有名字 有年龄 有性别———静态描述特征———属性
    人类能吃饭 能说话 能学习———动态动作行为———方法

    1. 对象---具体的事物 比如 人类中一个具体的人<br /> 类中衍生出来的一个具体的个体 应该与自己的类具有相同的特征和行为
    2. 在计算机中利用面向对象的编程思想来做事<br /> 需要先定义一个类<br /> 若想做事 需要在描述的类中创建一个具体的个体(即对象)出来<br /> 然后由个体(对象)来做事
    3. 如何在计算机中创建(描述)一个类?<br /> 1.先创建一个类<br /> 2.在类的里面 利用属性或方法去描述这个类<br /> 3.创建一个当前类的对象 让对象调用属性/方法来做事(对象的创建在哪都可以 想在哪里用就在哪里创建)
    4. 类中的方法-----是用来做事的
    5. 方法的结构(共七块内容)[ ]中的结构可以没有<br /> 权限修饰符 [特征修饰符] 返回值类型 方法名字 (参数列表) [抛出异常] [{<br />方法执行体(抽象方法可以没有方法体)<br /> }]
    6. 方法必须存在的结构 返回值类型与参数列表里面的内容不一定要有<br /> 权限修饰符 返回值类型 方法名字(参数列表){<br /> }
    7. 权限修饰符共有四个 public protected 默认不写 private<br /> <br /> 1.无参数无返回值<br /> 2.无参数有返回值<br /> 3.有参数无返回值<br /> 4.有参数有返回值
    8. 参数列表可以理解为方法做事情之前需要提供的条件(可以多个)<br /> 返回值可以理解为方法做事情之后得到的一个结果(只有一个)
    9. 类描述好之后是不可以直接用的<br /> 需要创建当前类的对象 通过new的方式 Person p = new Person();
    1. public class Person {//类的范畴要比主方法要大(主方法写在类里头)
    2. //这个文件是在计算机内 画的一张图纸
    3. //描述计算机里的小人长什么样
    4. //属性----静态描述特征
    5. //属性有三个必要的组成部分
    6. //权限修饰符(必须存在) 特征修饰符(不是必须的) 数据类型 属性名 = 值(可以不赋值 按默认值存在)
    7. //若不写明修饰符 就是默认修饰符 访问范围只在同包和本类中
    8. public String name;//全局变量
    9. public int age;
    10. public String sex;
    11. //方法-----描述做什么事情
    12. //方法的设计需要分析 1.需不需要提供条件(参数) 2.需不需要给别人留下什么结果(返回值)
    13. //设计一个方法 用来描述人类可以做吃饭这件事
    14. public void eat (){//无参数无返回值
    15. System.out.println("吃了一碗饭");
    16. }
    17. //设计一个方法 用来告诉别人我的名字
    18. //若方法规定了返回值类型 方法内必须通过return关键字返回一个值
    19. public String tellName(){//无参数有返回值
    20. System.out.println("我的名字是");
    21. return "小兰";
    22. }
    23. //描述人可以吃不同的东西
    24. public void chiFan(int num,String eatWhat){//有参数无返回值
    25. System.out.println("今天吃了"+num+"碗"+eatWhat);
    26. }
    27. //设计方法 买饮料
    28. //条件 钱
    29. //返回值 买到的饮料名字
    30. public String buyDrink(int money){//有参数有返回值
    31. if(money>5){
    32. return "红牛";
    33. }else{
    34. return "矿泉水";
    35. }
    36. }
    37. //line 表示需要花星星的行数 diretion 表示星星的方向
    38. //true 表示右直角 false 表示左直角
    39. //单分支语法结构如果代码有重复 一定可以优化
    40. public void drawStar(int line,boolean diretion){
    41. for(int i = 1;i<=line;i++) {
    42. if(!diretion){
    43. for (int j = 1; j <= line - i; j++) {
    44. System.out.print(" ");
    45. }
    46. }
    47. for (int j = 1; j <= i; j++) {
    48. System.out.print("*");
    49. }
    50. System.out.println();
    51. }
    52. }
    53. //主方法是程序的入口 它不属于任何一个类 它属于虚拟机
    54. //主方法不是必须要有 可以写在任意类下
    55. public static void main(String[] args){
    56. /*
    57. //创建对象 对象可以创建任意个
    58. Person p = new Person();//里面没存有值
    59. //在堆内存中产生的元素都有默认值 属性是有默认值的
    60. //默认值 name = null age = 0 sex = null
    61. p.name = "小兰";
    62. p.age = 18;
    63. p.sex = "女";
    64. Person p1 = new Person();
    65. //Person p1 = p; 相当于把p中的地址复制一份给p1
    66. // 此时输出的是两行 小明今年16岁,性别是男
    67. p1.name = "小明";
    68. p1.age = 16;
    69. p1.sex = "男";
    70. System.out.println(p.name+"今年"+p.age+"岁,性别是"+p.sex);
    71. System.out.println(p1.name+"今年"+p1.age+"岁,性别是"+p1.sex);
    72. */
    73. //创建一个对象 人类对象
    74. Person p = new Person();
    75. //2.通过对象 调用方法 让方法按照描述的过程执行一遍
    76. p.eat();
    77. //通过有无括号来区分是方法还是属性
    78. String myName = p.tellName();//有返回值可以不接收 没有返回值的没法接
    79. System.out.println(myName);
    80. p.chiFan(2,"过桥米线");
    81. String drinkName = p.buyDrink(10);
    82. System.out.println("买到了一瓶"+drinkName);
    83. p.drawStar(6,true);
    84. }
    85. }