Java面向对象

一、面向对象

  • 对象:对象是类的实例,万事万物都是对象。
  • 类:对具有相同属性和行为 方法 的对象的抽象。

二、特征

1、封装:将客观存在的事物抽象成类,并且类内存在的数据和方法只给一定的对象访问,提高了安全性。
2、继承:将多个具有相同属性和方法的类,高度抽象出一个拥有共性的父类,共性可以从父类中继承,个性可以再本类中体现。
3、多态:一个类实例的相同方法在不同情形有不同表现形式.

        /**
         * Animal是Cat的父类,在实例化过程中可以有不同的及结果
         */
        Animal a=st.new Cat();
        Cat c=st.new Cat();

三、Java关键字
1、public:公有成员,可以被任意成员访问。
2、private:私有成员,只能在该类内部被访问。
3、protect:保护成员,可以在该类的子类或父类中进行访问。
4、static:定义完成后就已经存在,不需要对象的调用,可以直接通过类名进行调用。

public class Test {
    public String a="a";
    public final static String b ="b";
    {
        System.out.println("我是普通方法块内容!");
    }
    static{
        System.out.println("我是静态方法块内容!");
    }
    public  Test(){
        System.out.println("我是构造器方法内容!");
    }
    
    public static void main(String[] args)
    {
        Test t = new Test();
        System.out.println(t.a);
        System.out.println(t.b);
        /*
         * 我是静态方法块内容!
            我是普通方法块内容!
            我是构造器方法内容!
            a
            b
         */
        System.out.println(Test.b);
    }
}

5、abstract:用来定义类或是方法,在修饰类时,此类不可以被实例化,只有通过子类继承,覆盖父类中的抽象方法后,才可以实例化;在修饰方法时,抽象方法只需要声明,子类继承后再去实现方法。

package test_keyword;

public class AbstractTest {
    /**
     *定义一个Animal抽象类,其中包括抽象方法eat()和普通方法sleep()
     *子类Cat继承父类,重写父类中的抽象方法,才可以被实例化后调用
     *普通方法可以直接调用
     */
    abstract class Animal{
        public abstract void eat();
        public void sleep(){
            System.out.println("睡觉!!");
        }
    }
    class Cat extends Animal{
        //重写父类中的抽象方法
        public void eat(){
            System.out.println("吃饭!!");
        }
    }
    public static void main(String[] args) {
        AbstractTest at=new AbstractTest();
        Cat c=at.new Cat();
        c.eat();
        //直接调用父类方法
        c.sleep();
        
    }
}

6、this:对象创建后,就会产生一个指向自己的指针“this”。只能在非静态方法内使用。

    /**
    *以重写equals方法为例,判断两个对象是否相等
    *以此判断传入对象的属性与自身的属性是否相同   
    **/
    
    public boolean equals(Course other){
        if(this.id.equals(other.id) && this.name.equals(other.name)){
            return true;
        }
        return false;
    }

7、super:用在子类中,访问直接父类中被屏蔽的成员变量或是成员方法。

    class Animal{
        public int age;
        public void show(){
            age=11;
            System.out.println("Animal年龄为:"+age);
        }
    }
    class Cat extends Animal{
        public int age;
        public void show(){
            super.show();//调用父类方法
            age=12;
            System.out.println("Cat年龄为:"+age);
            System.out.println(super.age);//调用父类的age值
            System.out.println(age);
            
        }
    }
    /**
     * Animal年龄为:11
     * Cat年龄为:12
     *  11
     *  12
     * @param args
     */

8、break:跳出摸一个模块。
9、continue:回到某个模块开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 标签(空格分隔): Java面向对象 1. 面向对象的特征有哪些方面? 抽象:抽象就是找出一些事物的相似和共性之处...
    outSiderYN阅读 6,397评论 0 6
  • 学习Java的进阶过程,是理解面向对象的思想,掌握面向对象的基本原则以及Java面向对象基本实现原理,熟练使用封装...
    Yumi__扶醉入香闺阅读 1,304评论 0 4
  • 标签(空格分隔): Java面向对象 问题思考 什么是面向对象? 为什么要面向对象? 怎么面向对象? 问题解决 什...
    outSiderYN阅读 1,065评论 0 7
  • 面向对象面向对象是一种程序设计思想,计算机程序的设计实质上就是将现实中的一些事物的特征抽离出来描述成一些计算机事件...
    文艺小年青阅读 445评论 0 0
  • 1、面向对象 面向对象(Object Oriented)的基本思想是使用对象、类、继承、封装、多态等基本概念来进行...
    wuchaooooo阅读 455评论 0 0