美文网首页
面向对象

面向对象

作者: 我是猪队友Y | 来源:发表于2016-09-18 16:11 被阅读0次

1.三大特征:

封装:把数据封装起来,不让外部随便访问

多态:同一事件可以有多种做法

继承:我们都是动物,我们有血有肉,有共同点

2.类和对象的区别

类是模板,如人类,狗;

对象是类的具体实例

3.权限

public :该项目中所有类均可使用

protected:只能同一个包的类调用,其他包的类使用必须是其子类

private :仅供该类使用,实现了封装

default(默认):只有在同一个包中使用

4.类包括

属性 如名字,年龄等

行为 如吃东西,跑步等

构造函数

5.类的定义

class 类名{

 void 方法名(参数){

      方法体;

 }

}

6.内部类

使用内部类的好处是:更好的封装,可以访问外部类变量

创建内部类的实例:

A a=new A();

A.B b=a.new B();

Inner classes(普通内部类) :

可以使用private public protected 修饰(如果使用public可以通过外部类访问内

部类)

形式:



class  Out{

     class Inner{

     }

}

Method local Inner classes(方法局部内部类):定义在方法里面

形式:


class Out{

     public void run(){

           class Inner{

           }

     }

}

AnonymousInner classes:匿名内部类


interface class Food{

       void beEat();   


}


public class Cat{

       public void eat(Food food){

               food.beEat();


        }


      public static void main(String args[]){

             Cat cat=new Cat();

             Food food = new Food() {


                    @Override

                     public void beEat() {

                     // TODO Auto-generated method stub

                           System.out.println("我被吃了");

                     }

             };

            cat.eat(food);

    }


}


7.静态static

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。

只要这个类被加载,就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

8.final常量

final 加到变量上,就成为常量

final加到方法前,这个方法就不能被子类覆盖(override)

final加到类前,表示这个类不能被继承

9.数据访问器 get() set()

如果要访问类中私有变量则使用数据访问器。

10.instanceof 以及向上转型

instanceof运算符是用来在运行时指出对象是否是特定类的一个实例,返回值为Boolean

向上转型 A b=new B();
B是A的子类,A中的A1()方法被B子类的A1()方法所覆盖,而B子类中的A2()方法则失效。(通俗的讲就是创建一个A的子类B,然后将B强转成A,b只能使用A中的方法,但已经被覆盖。)

public class Test {


    public static void main(String ar[]){
        
        Dog dog=new Dog("哈士奇");

        Cat cat=new Cat("加菲猫");
        runRunKan(dog);

        runRunKan(cat);
    }
    public static void runRunKan(Animal animal){
        System.out.println("==================");
        System.out.println("现在来比赛的是"+animal.name);
        animal.run();
        
        System.out.println(animal.name+"的成绩是"+Math.random());
        if(animal instanceof Dog){
            System.out.println("这是一条狗");
            Dog d=(Dog)animal;
            d.bite();
        }else if(animal instanceof Cat){
            System.out.println("这是一条猫");
            Cat c=(Cat)animal;
            c.catchMouse();
        }
        
    }
}

Dog以及Cat类继承与Animal类

1.abstract(抽象)

一个类是abstract类则不能被实例化,如果一个类不是abstract类则不能有abstract方法。
abstract类的方法通常是abstract类。
将abstract加在方法前面则变成抽象方法。
如果继承了次抽象类,则子类必须实现父的抽象方法。


public abstract class A {
    abstract void aa();
    abstract void cc();
    abstract void dd();

}

2.interface(接口)

接口里面字段是final型的 方法是abstract
default:实现接口方法

public interface Eat(){
    void eatChineseFood();
    default void eatWestFood(){
        System.out.println("还挺不错");
    }
}

相关文章

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 20-OOP类与对象

    面向对象 Object Oriented 学习面向对象:XXOO 面向对象的学习: 面向过程和面向对象的区别: 面...

  • JavaScript面向对象核心知识归纳

    面向对象 概念 面向对象就是使用对象。面向对象开发就是使用对象开发。 面向过程就是用过程的方式进行开发。面向对象是...

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象

    了解什么是面向对象 首先,我们学习面向对象,要了解什么是面向对象,面向对象的重要概念:类,对象。 面向对象提出的这...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

网友评论

      本文标题:面向对象

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