首页 > 其他 > 详细

面向对象和类

时间:2015-12-07 16:08:27      阅读:150      评论:0      收藏:0      [点我收藏+]

1.什么叫方法的重载
    方法重载是让类以统一的方式处理不同类型数据的一种手段。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
    调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法
2.什么是构造方法    http://baike.baidu.com/link?url=vHMUjRt8nzspk2O61aKaUpZ8C3tMqj3rftI12vJ6bO5YQqra296zHrSQc5ZvPZkugewPlliCg3Ez-qKcnS3os_
    构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
    当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
    
3.this关键字    http://blog.csdn.net/anmei2010/article/details/4091227
    1.当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)
    2.把自己当作参数传递时,也可以用this.(this作当前参数进行传递)
    3.有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。
    这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。
    4.在构造函数中,通过this可以调用同一类中别的构造函数。
4.为什么使用封装
    在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,
    形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。说白了,封装了以后,
    1、通过权限控制,可以防止用户修改你的代码和功能,安全性提高了。
    2、可重用。
    3、以后修改,可以不必修改用户代码,简便快捷。
5.类的修饰符及类成员的修饰符
   类修饰符:
    public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。
    abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。
    final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。
    friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。
   成员变量修饰符:
    public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。
    private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。
    protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。
    friendly ,在同一个包中的类可以访问,其他包中的类不能访问。
    final,最终修饰符,指定此变量的值不能变。
    static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。
    transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。
    volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。
   方法修饰符:
    public(公共控制符)
    private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)
    protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。
    final,指定该方法不能被重载。
    static,指定不需要实例化就可以激活的一个方法。
    synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。
    native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的
6.static修饰变量--静态变量    http://www.admin10000.com/document/5660.html
  static修饰方法--静态方法
  static修饰代码块--静态代码块
    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
    被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
   1、static变量
    按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。
    两者的区别是:
    对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
    对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
    所以一般在需要实现以下两个功能时使用静态变量:在对象之间共享值时;方便访问变量时。
   2、静态方法
    静态方法可以直接通过类名调用,任何的实例也都可以调用,
    因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
    因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!!
    因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
    例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。
    静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的
   3、static代码块
    static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,
    如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次
   4、static和final一块用表示什么
    static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
    对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
    对于方法,表示不可覆盖,并且可以通过类名直接访问。
7.单例模式
    例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,
    从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
第一种形式:懒汉式,也是常用的形式。
    public class SingletonClass{
    private static SingletonClass instance=null;
            {
        if(instance==null)
        {
               instance=new SingletonClass();
        }
        return instance;
    }
    private SingletonClass(){
    }
}
第二种形式:饿汉式
public static class Singleton{
    //在自己内部定义自己的一个实例,只供内部调用
    private static final Singleton instance = new Singleton();
    private Singleton(){
        //do something
    }
    //这里提供了一个供外部访问本class的静态方法,可以直接访问
    public static Singleton getInstance(){
        return instance;
    }
}
第三种形式: 双重锁的形式。
public static class Singleton{
    private static Singleton instance=null;
    private Singleton(){
        //do something
    }
    public static Singleton getInstance(){
        if(instance==null){
            synchronized(Singleton.class){
                if(null==instance){
                    instance=new Singleton();
                }
            }
        }
        return instance;
    }
}

面向对象和类

原文:http://www.cnblogs.com/a243204404/p/5026209.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!