码迷,mamicode.com
首页 > 其他好文 > 详细

大数据学习20190321

时间:2019-03-21 17:16:44      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:面向对象   cme   hide   this   选择   共享   teacher   col   student   

面向对象的四大特性

static关键字

 

/*    
 * static关键字:
 * 静态的属性和方法属于类的,使用的时候使用类名.属性名或方法名;
 * 非静态的属性和方法属于对象的,使用的时候需要先实例化对象(new),然后使用对象.属性名或方法名;
 * 非静态属性在当前类中不能静态的方法直接使用;
 * 静态方法和属性在当前类中可以被静态和非静态方法直接使用;
 * 
 * 在Java中static修饰的函数不能被子类重写;
 * 被final修饰的父类函数是无法被重写;
 * 被private修饰的父类函数无法被继承。
 * 
 * 静态代码块:
 * static{Java代码块}
 * 静态代码块在类被第一次加载的时候第一个执行,并且只执行一次;
 * 
 */

 

技术图片
public class StaticDemo {

    String a = "非静态属性";
    static String b = "静态属性";
    static int c;
    static int d;

    static {
        System.out.println("这是静态代码块,在类第一次被加载的时候第一个被执行");
        c = 5;
        d = 4;
    }

    public static void staticMethod() {
        System.out.println("这是静态方法!");
        // System.out.println(a); //静态方法无法直接调用非静态属性
        System.out.println(b);

    }

    public void unStaticMethod() {
        System.out.println("这是非静态方法!");
        System.out.println(a);
        System.out.println(b);
    }

    public static void main(String[] args) {

        staticMethod();
        // System.out.println(b);
        // unStaticMethod();
        // System.out.println(a);
        System.out.println(b);
        StaticDemo sd = new StaticDemo();
        System.out.println(sd.a);
        System.out.println(sd.b);

    }
}
View Code

 

抽象

把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫类或者接口,抽象并不打算了解全部问题,而是选择其中一部分,暂时不用部分细节。

抽象包括两个方面:一个是数据抽象,而是过程抽象。

数据抽象:表示世界中一类事物的特征,就是对象的属性;

过程抽象:表示世界中一类事物的行为,就是对象的行为。

 

 

封装

 

 

技术图片
package demo;

public class Teacher {
    //对属性私有化进行封装     赋值方法     取值方法         
    //没有私有化的属性也可以进行封装,但没有意义
    private double money = 100;

    public void setMoney(double money){
        this.money = money;
    }
    
    public double getMoney(){
        return money;
    }    
}
View Code

 

技术图片
package demo;

public class Student {

    public static void main(String[] args) {
        Teacher t1 = new Teacher();
        // System.out.println(t1.money);
        System.out.println(t1.getMoney());
        t1.setMoney(200);
        System.out.println(t1.getMoney());
    }
}
View Code

1.通过构造方法创建对象

 

Student stu = new Student();

 

2.通过工具类(媒婆)创建对象

技术图片
package demo;

public class OopDemo01 {
    static OopDemo od = new OopDemo();
    
    public static OopDemo getInstance(){
        return od;
    }
}
View Code

3.通过工厂模式(代理模式)创建对象

 

技术图片
package demo;

public class FactoryDemo {
    OopDemo od;
    
    public static OopDemo getOopDemo(){
        
        return new OopDemo();
    }
    
    public OopDemo getOopDemo01(){
        
        od = new OopDemo();
        return od;
    }
}
View Code

 

 

继承

对象的一个新类可以从一个现有的的类中派生,这个过程称为继承。新类继承了原始类的特性,新类成为原始类的派生类(子类),原始类称为新类的基类(父类),派生类可以从他的父类那里继承方法和属性。

多态

指允许不同类的对象对同一消息做出响应,多态性包括参数化多态性和包含多态性,多态性语言具有抽象/灵活/行为共享/代码共享的优势。方法的重写,重载与动态链接构成多态性,Java引入多态的概念原因之一就是弥补类的单继承带来的功能不足。

动态链接-->对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将调用子类中的这个方法。

 

大数据学习20190321

标签:面向对象   cme   hide   this   选择   共享   teacher   col   student   

原文地址:https://www.cnblogs.com/homelessdog/p/10572866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!