美文网首页
Java面向对象

Java面向对象

作者: yzw12138 | 来源:发表于2017-06-09 07:04 被阅读0次

    一、面向对象

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

    二、特征

    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面向对象

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