精华内容
下载资源
问答
  • 不能用来修饰interface修饰的方法

    万次阅读 2019-04-24 11:02:26
    不能用来修饰interface的有( )(仅限外部接口) 正确答案: A C D A private B public C protected D static 解析: 1、抽象类中的抽象方法(其前有abstract修饰)不能用private、...

    不能用来修饰interface的有( )(仅限外部接口)
    正确答案: A C D

    • A private

    • B public

    • C protected

    • D static

    解析:

    1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽象方法用static修饰没有意义;使用synchronized关键字是为该方法加一个锁。。而如果该关键字修饰的方法是static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以。锁应该归其子类所有。所以。抽象方法也就不能用synchronized关键字修饰了;native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?

    2、接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的abstract可以省略),所以抽象类中的抽象方法不能用的访问修饰符这里也不能用。而且protected访问修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。

    题考察修饰符,函数定义等,故从网上搜罗了下相关资料,总结如下:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述 类的修饰符整合

    一.类

    类的修饰符:

    Public:可以在其他任何类中使用,默认为统一包下的任意类。

    Abstract:抽象类,不能被实例化,可以包含抽象方法,抽象方法没有被实现,无具体功能,只能衍生子类。

    Final:不能被继承。

    二.变量

    变量修饰符:

    一个类的成员变量的声明必须在类体中,而不能在方法中,方法中声明的是局部变量。

    1. 可访问修饰符:

    2. static:类变量:一个类所拥有的变量,不是类的每个实例有的变量。类变量是指不管类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量,因此可以通过类本身或者某个对象来访问类变量。

    3. final:常量。

    4. volatile:声明一个可能同时被并存运行的几个线程所控制和修改的变量。

    实例变量:和类变量对应,即每个对象都拥有各自独立的实例变量。

    三.方法:(和变量对象分为实例方法和类方法,并用有无static修饰区别)

    类方法:使用static关键字说明的方法

    1.第一次调用含类方法的类是,系统只为该类创建一个版本,这个版本被该类和该类的所有实例共享。

    2.类方法只能操作类变量,不能访问实例变量。类方法可以在类中被调用,不必创建实例来调用,当然也可以通过对象来调用。

    实例方法:实例方法可以对当前对象的实例变量操作,而且可以访问类变量。

    方法可以重载,要求:方法名相同,但是参数必须有区别。(参数不同可以使类型不同,顺序不同,个数不同)

    方法的返回类型:若无返回类型,则声明为void.

    方法中的变量作用域:

    1. 成员变量:整个类。

    2. 局部变量:定义起到方法块结束为止。

    3. 方法参数:整个方法或者构造方法。

    4. 异常处理参数:参数传递给异常处理方法。

    构造方法:和类同名的方法。为新建对象开辟内存空间后,用于初始化新建的对象。不能用对象显式的调用。

    静态初始化器:格式:static{<赋值语句组>}

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • Java接口修饰符详解-可以修饰接口的修饰

    万次阅读 热门讨论 2017-05-05 15:12:27
    Java接口修饰符详解 可以修饰接口的修饰符有(C D) A private B protected C final D abstract 接口就是提供一种统一的”协议”,而接口中的属性也属于“协议”中的成员。它们是公共的,静态的,最终的...

    Java接口修饰符详解



    可以修饰接口的修饰符有(C D

    A private   B protected   C  final    D abstract

    接口就是提供一种统一的”协议”,而接口中的属性也属于“协议”中的成员。它们是公共的,静态的,最终的常量。相当于全局常量。抽象类是不“完全”的类,相当于是接口和具体类的一个中间层。即满足接口的抽象,也满足具体的实现。

     

    接口是构建松耦合软件系统的重要法宝。

     

    A、接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;

     

    B、接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法

    都是抽象(abstract)方法;

     

    C、接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量。

     

    D、接口的中的变量是所有实现类共有的,既然共有,肯定是不变的东西,因为变化的东西也不能够算共有。所以变量是不可变(final)类型,也就是常量了。

     

    E、接口中为什么不可以定义变量?如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过实现接口的对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口 A 中有一个public 访问权限的静态变量 a。按照 Java 的语义,我们可以不通过实现接口的对象来访问变量 a,通过 A.a = xxx; 就可以改变接口中的变量 a 的值了。正如抽象类中是可以这样做的,那么实现接口 A 的所有对象也都会自动拥有这一改变后的 a 的值了,也就是说一个地方改变了 a,所有这些对象中 a 的值也都跟着变了。这和抽象类有什么区别呢,怎么体现接口更高的抽象级别呢,怎么体现接口提供的统一的协议呢,那还要接口这种抽象来做什么呢?所以接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统一的属性。

     

    通俗的讲,你认为是要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现 implements)开放,接口是对开闭原则的一种体现。

     

    所以:

    接口的方法默认是public abstract

    接口中不可以定义变量即定义的变量前都要加上final修饰,使之成为常量(没有final修饰的是变量,加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。

    展开全文
  • java修饰

    千次阅读 多人点赞 2019-09-11 01:01:43
    文章目录java修饰符java中的修饰符分类:一,权限修饰符:private, default, protected, publicprivate:default:protected:public:二,状态修饰符:static, finalstatic修饰符语法格式:特点static静态变量静态...

    java修饰符

    java中的修饰符分类:

    • 权限修饰符: private, default, protected, public
    • 状态修饰符: static, final
    • 抽象修饰符: abstract

    一,权限修饰符:private, default, protected, public

    private:

    如果实体使用private修饰符声明,那么实体将只能由定义实体的类中的包含的代码访问。它的访问权限仅限于类的内部,是一种封装的体现。这样,就不能从类的外边直接访问他们,我们提供set和get方法,保证类中数据域的安全。

    default:

    默认修饰符,什么都不加,实际上它限制的范围就是一个包内可以访问。如果不在一个包内,即使继承关系任然是不能访问的。它是针对本包访问而设计的,任何处于本包下的类,接口,异常等,都可以互相访问,即使是父类没有用protected修饰的成员也可以

    protected:

    经常需要允许子类访问定义在父类中的数据和方法,但是不允许非子类访问这些数据和方法,这种情况下就可以使用protected,它允许任何包中的子类访问父类。

    public:

    具有最大的访问权限,可以访问任何一个CLASSPATH下的类,接口、异常等。它往往对于对外的情况,也就是对象或类对外的一种接口形式。

    在这里插入图片描述

    二,状态修饰符:static, final

    static修饰符

    static的主要作用在于创建独立于具体对象的域变量或者方法。

    语法格式:

    修饰变量:static 数据类型 变量名

    修饰方法:【访问权限修饰符】 static 方法返回值 方法名(参数列表)

    特点

    static可以修饰变量,方法被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享。

    在类被加载的时候,就会去加载被static修饰的部分。被static修饰的变量或者方法是优先于对象存在的,也就是说当一个类加载完毕之后,即便没有创建对象,也可以去访问。

    static静态变量

    static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员变量叫做实例变量,说明这个变量是属于某个具体的对象的。

    静态变量与非静态变量的区别

    • 静态变量可以直接使用类名调用。

    • 静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化。

    • 静态变量一旦变化,所有的实例的静态变量值都会变化。

    • 非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响

    • 非静态方法可以调用静态变量、静态方法和非静态变量、非静态方法。

    static静态方法

    • 被static修饰的方法也叫做静态方法,因为对于静态方法来说是不属于任何实例对象的,那么就是说在静态方法内部是不能使用this的。
    • 由于这个特性,在静态方法中不能访问类的非静态变量和非静态方法,因为非静态方法/变量都是须依赖具体的对象才能够被调用。
    • 在静态方法中不能访问非静态方法和非静态变量,但是在非静态方法中是可以访问静态方法/静态变量。

    final 修饰符

    final 关键字可以用于修饰类,方法和变量

    1、final关键字通常与static修饰符一起使用来创建类常量

    2、 final 修饰成员变量

    • 必须要赋初始值,而且是只能初始化一次。
    • 被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。
    • 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。
    • 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变的。

    3、final 关键字修饰方法时,则该方法不能被重写

    • 一个类的private方法会隐式的被指定为final方法。
    • 如果父类中有final修饰的方法,那么子类不能去重写。

    4、final 关键字修饰类时,该类不能被继承

    • 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl。
    • final类中的成员方法都会被隐式的指定为final方法。

    三,抽象修饰符:abstract

    abstract修饰符

    用abstract关键字来修饰该类[抽象类],用abstract来修饰该方法[抽象方法]。

    抽象类:

    • 抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。
    • 抽象类不能被实例化。因为抽象类中方法未具体化,除此之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
    • 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
    • 抽象类中不一定要包含abstract方法。也就是抽象中可以没有abstract方法。

    抽象方法:

    • 用abstract来修饰该的抽象方法只包含一个方法名,不能有方法主体。
    • 抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。
    • 一旦类中包含了abstract方法,那类该类必须声明为abstract类。
    展开全文
  • 内部接口可以被什么修饰修饰

    千次阅读 2017-05-08 21:47:10
    1.static:内部接口必须static,默认...而当他描述内部的东西时(字段,方法,类,接口)他就表示被描述的东西属于外部东西(类或接口)的还是它的实例的,如果内部的东西修饰为non-static那么逻辑上可以认为是一个
    1.static:内部接口必须static,默认就是static。我觉得可以这样理解static的意义,当它描述外部的“东西”(类,接口)时它表示是否可以被实例化(因为接口不可被实例化,所以外部接口不可被修饰为static);而当他描述内部的东西时(字段,方法,类,接口)他就表示被描述的东西属于外部东西(类或接口)的还是它的实例的,如果内部的东西被修饰为non-static那么<em>逻辑上</em>可以认为是一个外部实例拥有一个内部“实例”,为什么说逻辑上,因为实现上内部的方法只有一个,并不是一个外部实例对应一个方法,或者也可以理解成static只有外部东西本身能call它(外部实例call它也是转换成外部东西本身call它),而non-static只能外部实例call它

    还有,因为static的内部东西是属于外部东西的,所以他也只能调用或访问外部东西的其他static的内部东西;而non-static的内部东西是跟外部实例一一对应的所以可以调用或访问外部东西的non-static的内部东西,当然也可以访问外部东西的static的内部东西


    2.abstract 外部接口和内部接口一样,默认就是abstract


    3.private,protected:外部接口不能用private,protected很明显(外部类也不能用),因为private,protected是用来修饰访问级别的,private表示只能被本类或本接口访问后调用是用来修饰内部的东西的,protected表示只能被子类或本包访问,也是用来修饰内部的东西的

    4.和外部接口一样不能是final,因为abstract和final不能共存


    5.public明显可以


    注:前面提到的non-static不是一个修饰符,只是用来描述非static的
    展开全文
  • 看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,...被const 修饰东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设
  • const修饰函数

    千次阅读 2014-04-07 15:07:58
    看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,...被const 修饰东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设
  • abstract修饰符 和 interface修饰

    千次阅读 2015-06-04 15:56:52
    ==== abstract ================================================================================================ 首先,用abstract(抽象)修饰符指示所修饰的内容是缺少实现或未完全实现的。 abstract 修饰...
  • static修饰

    2019-02-23 00:32:21
    总结一下c, c++中关于static的理解:(static 个人认为可以理解为限定其存储空间和作用域,而const,理解为限制其访问权限) c语言中:  1.0 修饰局部变量:定义只会被执行一... 3.0 修饰函数,同修饰全局变量一样...
  • 访问修饰

    2013-06-19 06:14:27
    以前写程序的时候不太注意访问修饰符的问题,为了方便访问,所以很多东西都使用的是public来修饰,这样做虽然方便但是从面向对象的角度来说这样的封装实在太混乱。类、类成员用哪种修饰符还是要靠自己去思考,我们在...
  • python修饰

    千次阅读 2012-02-02 10:49:10
    在《python类方法和静态方法》中提到了修饰器,修饰器和java中的注解看起来差不多,他到底是什么东西呢? 先看一下一个最简单的修饰器实现: def R(arg): print("修饰一下") return f 它看起来就是...
  • abstract修饰

    2019-06-18 15:14:01
    下列关于修饰符混用的说法,错误的是( ) A abstract不能与final并列修饰同一个类 B abstract类中不应该有private的成员 C abstract方法必须在abstract类或接口中 D static方法中能直接调用...
  • 本小节详细介绍了 Java 访问修饰符。它们控制 Java 类及其成员(函数和数据)的可见性。它们是公共的、私有的和受保护的。 但是,当没有修饰符存在时,Java 也实现了默认情况。这意味着一个类、它的函数、字段只能...
  • java 类的修饰

    千次阅读 2018-08-03 11:30:41
    Abstract 修饰后,必须通过类继承或者接口实现来重写,否则就是摆设。 final 修饰的类/方法/...static 静态的,其修饰的方法/属性,是随着类的创建而创建,类的消亡而消亡,在编译时就已经确定的东西;但是abstra...
  • 修饰和限定的区别

    千次阅读 2020-05-29 23:28:19
    添加的作用,有时候由于一种特征在当时环境下已经能指定是什么东西了,再详细描述其实还是那个东西,多出来的就是修饰,比如,院子里只有一盆花,说花开了,和说漂亮的花开了,都是指的同一个东西,说是修饰其实是...
  • java 访问修饰

    千次阅读 2013-11-14 21:24:07
    此题考察修饰符,函数定义等,故从网上搜罗了下相关资料,总结如下:   类、方法、成员变量和局部变量的可用修饰修饰符 类 成员访求 构造方法 成员变量 局部变量 abstract(抽象的)...
  • python中的 @ 修饰

    千次阅读 2017-01-11 22:18:40
    @符号用作函数修饰符是...一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。 def f1(arg): print("function f1") rl = arg() print(rl) return rl + " f1 return" #
  • Python高级用法之修饰

    千次阅读 2018-09-09 00:07:45
    修饰器定义: 英文名叫Decorator,主要用来对功能函数进行润色,在原有功能的基础上添加一些额外修饰。...使用方法:就是在方法名前面加一个@XXX注解来为这个方法装饰一些东西。 1,不带参数的修饰器 ##在函数...
  • 接口修饰符号

    千次阅读 2018-05-11 00:17:56
    14. Java接口的修饰符可以为()A private B protected C final D abstract答案:CD解析:接口很重要,为了说明情况,这里稍微啰嗦点:(1)接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是...
  • Const修饰指针的理解

    2019-04-28 08:09:59
    Const修饰指针的理解 开发工具与关键技术:Visual Studio、C++ 作者:张国军 撰写时间:2019年04月25日 在说被const修饰的指针之前呢,我们先来了解一下const。对于const,我对它的理解呢,就是一个不可改变的,...
  • java synchronized修饰方法和修饰方法块

    千次阅读 2014-07-29 10:05:40
    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内...
  • const 修饰函数

    2009-08-11 15:13:00
    看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,...被const 修饰东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设
  • 5.2.1 模式修饰

    2016-11-17 16:07:11
    /s 和 /m 修饰词并不涉及任何古怪的东西。它们只是影响 Perl 对待那些包含换行符的匹配的态度。 元字符 "." 匹配除了换行符以外的任何单个字符,因为它的传统含义是匹配一行内的某个字符。 不过带有/s时,"." 元...
  • Scala:访问修饰符、运算符和循环

    千次阅读 2016-10-23 15:55:41
    http://blog.csdn.net/pipisorry/article/details/52902234Scala 访问...如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public。Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层
  • const修饰变量的总结

    2017-07-19 10:40:16
    const修饰一般变量的时候: int const number =2 或者 const int number = 2;   修饰指针的时候,反正我每次都搞不清,但是这次却永远记住了! 修饰指针的时候,有如下几种情况: const int *p //p可变,但是p...
  • C# 修饰符 总结

    2012-02-13 20:39:40
    开始觉得都还比较好懂,不过某一天看程序的时候觉得类好多语句看着就是心里不踏实,好像看懂了有感觉没有怎么懂,所以发现自己学这些基础东西的时候太浮躁了,其实都是一知半解,所以今天决在网上好好搜集下C#修饰符...
  • Flask源码关于修饰修饰路由

    千次阅读 2015-03-09 21:31:40
    装饰器 route 主要是为fun套了一层 add_url_rule : ...创建WSGI不会这么简单,Flask使用了RequestContext类来创建网页的上下文(里面包含session等),这里先偷懒做到这里,留WSGI这个东西下次再写。
  • 但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存在的,它只是用来帮助我们理解锁定实例方法和静态方法的区别的 上面已经对锁的一些概念有了一点了解,下面探讨synchronized关键字的用法。 ...
  • static是说明这个东西是属于整个类的,而局部变量的作用域只能在他所属的 { } 之内。 不可能是属于类或对象的。 所以矛盾,故static不能修饰局部变量。
  • 有些基础的东西,总是用着用着就忘了根本,这就是所谓的习惯性思维吧.在Java项目中,访问权限的作用范围就分为以下几种:  1.同一类  2.1同一包的子类  2.2同一包的非子类  3.1其他包的子类  3.2其他包的非...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,435
精华内容 48,574
关键字:

修饰东西