美文网首页
JAVA笔记整理4

JAVA笔记整理4

作者: 丛鹏 | 来源:发表于2019-12-05 13:52 被阅读0次

    62 面向对象(概括)

    面向对象是相对面向过程而言。

    面向对象和面向过程都是一种思想。

    面向过程:强调的是功能行为(行为,动作,功能);

    面向对象:将功能封装进对象,强调具备了功能的对象;

    面向对象是基于面向过程的;

    就是把原来的封装起来了

    63面向对象(举例)

    一切皆对象,万物皆对象;没有对象造对象;

    64类与对象的关系

    人开门:名题提炼法

    人{

       开门(哪个门){  门.开();====>门开的功能}

    门{

        开()(操作门轴等)

    面向对象三个特点:封装、继承、多态。

    以后的开发就是找对象,没有对象创建对象;

    找对象、创建对象、使用对象、维护对象的关系;

    类和对象的关系:类就是生活中事务的描述,对象就是这类事物,实实在在存在个体;

    描述事物:其实就是在描述事物的属性和行为;

    定义类:就是描述事物,就是定义属性和行为;

    属性对应是类中变量,行为对应类中方法(函数),属性与行为共同成为类中的成员(成员变量,成员方法);

    class Car{

        String color="红色";

        int num=4;

       void run(){

             System.out.println(color+"--------"+num)

       }

    }

    class CarDemo{

          public static void main(String[] args){

                         Car c=new Car();=====>创建一个对象

          }

    }

    (Car)类型产生一个变量,变量指向一个对象,c就是类型变量指向对象;

    new Car()====>产生一个对象

    Car         c     =    new Car();

    类类型   变量--->对象

    对象的特点用于封装数据(行为、属性)

    65    面向对象(成员变量与局部变量)

    主函数用于独立运行;

    成员变量:作用于整个类中;

    局部变量:作用于函数中或者语句中;

    成员变量在堆内存中,因为对象的存在,才在内存中出现;

    局部变量在栈内存中;

    66    面向对象(匿名对象应用)

    Car c=new Car();

    c.num=5

    ------->new Car().num=5;   这个就是匿名对象;

    匿名方法调用方法有意义,调用属性没意义;

    匿名对象使用方式一

    当对对象的方法只调用一次时,这样写简化,如果对一个对象进行多个成员调用,必须给这个对象起个名字;

    匿名对象使用方式二

    可以将匿名对象作为实际参数进行传递

    等值操作

    67 面向对象(封装)

    封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式;

    好处:1.隔离了变化2.便于使用3.提高复用性4.提高安全行

    封装原则:

    1.将不需要对外提供的内容都隐藏起来;

    2.把属性都隐藏,提供公共方法对其访问;

    类---->包---->框架

    68 面向对象(封装private)

    private:私有,权限修饰类中的成员(成员变量、成员函数);

    私有只在本类中有效;即使new了耶不能访问,提供了对应访问的方式

    public void setAge(int a){

          age=a;

    }

    public void getAge(){

         return  age;

    }

    一个成员变量通常会有两个访问方式(设置、获取)

    封装不是私有的,私有仅仅是封装的一种表现形式,只要权限访问不带的都是封装;

    之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性;

    69   面向对象(构造函数)

    特点:1 函数名与类名一致;2  不用定义返回类型的; 3  不可以用return语句;

    重点:只要对象一建立,就会调对应的已知函数;

    构造函数的作用:可以给对象进行初始化;

    构造函数的小细节:

    1.当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数;

    2.当类中自定义了构建函数后,默认的构造函数就没有了;

    3.构造函数与一般函数在写法上有不同,在运行上也不同,构造是一建立就运行,给对象初始化,而一般方法是对象调用才执行,是给对象添加对象具备的功能;

    4.一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次;

    5.什么时候定义构造函数呢?

    当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中(初始化,忘里面传递就好了)

    70 面向对象(构造代码块)

    1.构造代码块:作用给对象进行初始化。

    2.对象一建立就运行,并且优先于构造函数执行

    3.与构造函数的区别:

    构造代码块时给所有对象进行统一初始化;

    构造函数是给对应的对象初始化;

    class Person{

    ........................

    {

           cry();  ==========>单独的代码{}

     }

    }

    构造代码块中定义的是不同对象共性的初始化内容;

    71 面向对象(this 关键字)

    构建函数可以被私有化,如果构造函数都私有化就不可能创建对象的

    this 看上去是用于区分局部变量和成员变量同名情况

    Person(string name){

       this.name=name;

    person p=new person("lisi")

    this  就代表本类的对象

    this 代表它所在函数所属对象的引用;(this 代表那个函数,简单的说 哪个对象调用this所在的函数,this就代表哪个对象)

    输出

    public void speak(){

          system.out.println("name"+this.name+"......age"+this.age);

    72面向对象(this关键字的应用)

    this 的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this 来表示这个对象。

    但凡本类功能内部使用了本类对象,都用this表示;

    public boolean compare(Person p){

          return this.age=age;

    }

    class PersonDemo3{

    public static void main(String[] arg){

    Person p1=new Person(20);

    Person p2=new Person(25);

    boolean b=p1.compare(p2)

    System.out.println(b)

    );

    }

    }

    哪个类调用了这个方法,this就代表哪个类

    73  this关键字在构造函数间的调用

    this语句:用于构造函数之间进行相互调用;

    用的时候传相对应的参数;

    1.this语句只能构建函数的第一行;因为初始化要先执行

    person(string name,int age){

       this(name);//P(name)姓名初始化

       this.age=age;

    class PersonDemo4{

       Person p=new Person("lisi",30);

    }

    一般函数不能直接调用构造函数

    相关文章

      网友评论

          本文标题:JAVA笔记整理4

          本文链接:https://www.haomeiwen.com/subject/ghtfjxtx.html