第五节 面向对象

1.面向对象:java体系的重点,核心,格式化。(理论大于实践)
        面向:代表的是以...方式来做...的事。
        对象:在程序中代表一个具体的实例。
        面向过程:把大象装冰箱分几步?
                          1.把冰箱门打开
                          2.把大象放冰箱里
                          3.关上冰箱门
        面向对象(Oriented-Object Programming):                        

 问题1:如何用面向对象的思维方式来解决问题?

把大象装冰箱

      找出”对象“:冰箱 人  大象

      以对象的方式进行编程。
           定义:如果我们遇到一个问题的时候,先不论考虑如何解决问题,先将问题中的“对象找到”,再去解决问题。
           对象:就是生活中的具体物品,事物;看得见,摸得着的,真是存在的。

 问题2:对象是如何在程序中定义的。

                          构建

            类class---------->对象object。

           类和对象关系:

                    类是对象的抽象(概念)

                    对象是类的具体(实例)物品

     例如:红色字体是类,绿色是对象

 汽车: A6 ,黑色的, 车牌号:黑A:8888  

 人:身份证号,姓名,

        在java程序中的类:

                    语法结构:

    访问修饰符 class 类的名字{

                                  }

         在java程序中的对象:

                    语法结构:

     类的名字 变量名 

       类的组成部分:

    1.成员属性:

 访问修饰符 数据类型 变量名;

                       public String name;//声明

                       public String name = ”小黑“;//初始化

     2.方法(行为,动作):

                    语法结构:

无返回值 无参数

访问修饰符 返回值类型 方法名(){

                       }

                              public void eat(){

                              }

无返回值 有参数

 访问修饰符 返回值类型 方法名(参数列表){

                        }

                       public void eat(String food){

                        System.out.println("吃了" + food);

                        }

有返回值 无参数

访问修饰符 返回值类型 方法名(){

                        }

                       public String eat(){

                       return 结果;

                        }

有返回值 有参数

访问修饰符 返回值类型 方法名(){

                       }

                        public int add( int a ,int b ){

                       int c = a+b;

                       return c ;

                        }

     重点:

如果在同一类中出现了相同的方法名,参数列表不同,这个现象叫做方法的重载,与返回值无关,

                                       它会根据方法的入参的类型。个数,顺序有关。      

无返回值的方法不可以二次利用,但是有返回值的方法可以二次利用,这个要看类中定义的功能具体

                                   要求,没有固定的用法,要灵活使用方法。

                   5.属性的访问器:setter getter

                        public void setStudent( String name){

                               student = name ;

                        }

                        public String getStudent(){

                        return student;

                         } 

    3.构造器,构造函数

        构造方法是不是方法?

       是,是特殊的方法,没有返回值的方法。

构造器的作用:规范对象的创建,给成员属性赋值。

                    语法结构:必须这么写

                                访问修饰符 类名(参数列表){

                                  }

        Java中给属性赋值的三种方式:=赋值, 属性的访问器(最多),构造方法。

    注意事项:当我们在类中定义一个有参的构造器,系统会将默认无参数的构造器去掉,我们就不能再 new+类名()。

                       只要你在定义一个类,添加有参数的构造器,都添加一个无参数的构造器。

方法之间的相互调用:

              普通方法之间只能单向调用:

               A调用B,相互调用就会出现java.lang.StackOverflowError 栈溢出错误

               int i = 1/0;    java.lang.ArithmeticException: / by zero    

             构造方法的相互调用:

1.必须用this();代替

                                       2.必须放到第一行;

                                       3.必须是是多个参数调用少的参数

    4.构造块

  语法结构:{         }

    5.静态块

    语法结构:static {         }

    类在加载时的执行顺序:1.优先加载静态块,2.加载构造快,游离块,3.构造器

关键字:static 静态的

使用方便,不需要创建对象,直接通过类名.静态属性名,static关键字可以修饰成员属性,成员方法,游离块,全局只加载一次,使用起来方便。

静态方法值必须加载静态资源;非静态方法可以加载静态资源。

仅用于个人学习总结