zoukankan      html  css  js  c++  java
  • java面向对象

    1.什么是面向对象

    一个很抽象的概念,它相对面向过程而言。
    过程与对象都是一种解决问题的思想。
    面向过程:强调的是功能行为,一种过程,先干啥,再干啥;
    面向对象:将功能封装到对象里,强调的是具备某功能的对象;
    计算机语言为了更好的去描述现实生活中的事物,也一样会按照生活中的思考方式来定义,这样人们使用起来才会更方便。

    面向对象的三个特征:
    封装(Encapsulation);
    继承(Inheritance);
    多态(Polymorphism)。

    2.类和对象的关系

    类是对生活中某一类事物的描述(一种抽象概念),对象是该类事物实实在在存在的个体。(对象==实例)

    3.类的定义

    [访问权限][修饰符] class 类名{
    1~n个构造方法;
    0~n个字段;
    0~n个方法
    }

    构造方法:用来构造类的实例(默认有一个无参的构造方法,得使用new调用)
    字段:类或对象所包含的数据,对类状态的一种描述;
    方法:类或对象的特征或行为

    class  CellPhone{
        String brand = "google";
        String color = "red";
        double price;
    	
        public void showInfo()
        {		
    	System.out.println(
    		brand+ "手机是"+color+"色的"+"价值"+price);
        }
    }
    
    

    4.static关键字

    特点:

    • 随着类的加载而加载
    • 优先于对象存在
    • 被所有对象所共享
    • 可以直接被类名调用
      使用注意:
    • 静态方法只能访问静态成员
    • 但是非静态成员可以访问静态成员;
    • 静态方法中不可以使用this,super关键字

    可修饰字段,方法。
    用static 修饰的成员表示它属于这个类共有,而不是属于该类的单个实例。
    static 修饰的字段 == 类字段
    static 修饰的方法 == 类方法

    没使用static修饰的字段和方法,成员属于类的单个实例,
    不属于类。
    没有static 修饰的字段 == 实例字段
    没有static 修饰的方法 == 实例方法

    类和实例访问字段和方法的语法:
    访问类成员: 类.字段 类.方法
    访问实例成员: 实例.字段 实例.方法

    static 修饰的字段和方法,既可以通过类调用,也可以使用实例调用;

    没static 修饰的字段和方法,只能使用实例来调用

    5.匿名对象

    特点:
    对方法或字段只进行一次调用时;

    • new Car().show();
    • new Car().run();
      可作为实际参数进行传递;
    • public void show(Car c){ }
    • new Car().show(new Car());
      只在堆内存中开辟空间,而没有在栈内存的引用。

    6.面向对象 之 封装

    • 封装的两个含义:
      1. 把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的模块中(类);
      2. "信息隐藏", 把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节,字段;
    • 封装机制在程序中的体现是:把描述对象的状态用字段表示,描述对象的行为用方法表示,把字段和方法定义在一个类中,并保证外界不能任意更改其内部的字段值,也不允许任意调动其内部的功能方法。
    • 程序中的一种体现:通常将类中的成员变量私有化(private),通过对外提供方法(setXxx,getXxx),可对该变量(xxx)进行访问。
    • boolean 类型的变量没有getXX,只有 isXX;

    this关键字

    • 特点:this表示当前对象。
      当前对象 ←→ 当前正在调用实例成员的对象
      换言之:谁调用了方法,谁就是当前对象。
    • 什么时候使用this关键字呢?
      方法间的相互调用;
      this.字段;
    • 构造器中相互调用,但是此时this([参数])必须写在构造方法第一行。
    • this不能用在static修饰的方法里和static修饰的代码块里;

    7.访问修饰符

    • private 类访问权限:本类内部可以访问,不能继承到子类;
    • default 什么都不写,包访问权限:本类内部可以访问,同包其他类也可以访问,同包可继承;
    • protected 子类访问权限:本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问,能继承到子类;
    • public 公共访问权限:任何地方都可以访问,能继承到子类;

    8.构造方法

    1. 特点:
      方法名与类名相同
      不用定义返回值类型
      不需要写return语句

    2. 作用:
      给类中的字段进行初始化,可以用来创建对象。
      注意:

    3. 默认构造方法的特点。
      多个构造方法是以重载的形式存在的。

    4. 对象的产生格式:
      类名称 对象名 = new 类名称();
      因为有(),所以是方法,实际上它就是构造方法,并且是非私有的构造方法。
      如:CellPhone cp = new CellPhone();

    9.类的设计分析

    • 根据要求写出类所包含的字段;
    • 所有的字段都必须私有化;
    • 封装之后的字段可通过setter和getter设值和取得;
    • 按需求可添加若干构造方法;
    • 根据需求可添加相应的方法;
    • 类中的所有方法都不要直接处理(输出打印),而是交给调用者去处理。
  • 相关阅读:
    flex 布局 shrink 属性
    flex 布局 flex-grow 属性
    flex 布局 flex-basis 属性
    flex 布局 justify-content 对齐的图解
    CSS定位要点笔记
    CSS浮动要点笔记
    CSS选择器要点笔记
    eslint no-unused-vars 解决办法
    NodeJs使用Promise解决多层异步调用的简单学习
    windows10 搭建 NTP 时间服务器
  • 原文地址:https://www.cnblogs.com/linbin7/p/14522803.html
Copyright © 2011-2022 走看看