精华内容
下载资源
问答
  • Java类声明详解

    2021-02-12 12:56:16
    二、类声明语法[修饰符] [static] [final] [abstract] [strictfp]class 类名 [extends 父类名] [implements 接口名] { [类体;]}注释:[]代表可以忽略。三、修饰类的关键字及其意义3.1 修饰符首先每一个类都会有访问...

    本文重点介绍在JAVA中类的声明。

    一、定义

    类可以理解为一个模版,它描述一类对象的行为和状态。

    二、类声明语法

    [修饰符] [static] [final] [abstract] [strictfp]

    class 类名 [extends 父类名] [implements 接口名] { [类体;]}注释:[]代表可以忽略。

    三、修饰类的关键字及其意义

    3.1 修饰符

    首先每一个类都会有访问权限,指明这些类可以被哪些类访问。JAVA通过在类声明时,指定修饰符来约定访问权限。在java中有4种修饰符,分别是public、private、protected和缺省值。对于它们所指代的访问劝限如下:

    public:修饰顶层类和成员类,表明该类是一个公共类,可被任何类访问。(注意哦,同一个java源文件只能有一个公共类)

    private:修饰成员类,表明是一个私有类,只能被顶层类访问。

    protected:修饰成员类,表明该类是一个受保护的类,只能被自身类、自身类的子类以及与其自身类同胞的类访问(总结来说就是可以被同包的类访问)。

    缺省值:定义类时,可以忽略掉修饰符,代表该类只能被同胞的类访问。

    2.2 static

    用于修饰成员类,代表该类是一个静态类,静态类是其顶层类的固有对象,不用创建实例,且可以直接引用。

    3.3 final

    指明类为最终类,不会有子类,所以不能被继承。

    3.4 abstract

    指明类为抽象类,抽象类没有完全实现,所以不能被实例化,也不能直接引用。(注意abstract和final不能修饰同一个类,原因从意义上就能看出)

    3.5 strictfp

    用strictfp关键字表示精确浮点数,修饰的类中所有的运算都是严格按照浮点运算规范IEEE-754进行,保证精确性。

    3.6 class 类名

    class关键字告诉编译器这个是一个类。类名必须是合法的Java标识符。

    3.7 extends 父类名

    extends 代表该类是其父类的派生类。代表该类是其父类的子类。

    3.8 implements 接口名

    代表实现了接口。

    3.9 类体

    类体是类的功能的具体实现,有成员属性、成员方法等组成。四、总结 合理运用这些关键字,有助于代码逻辑的清晰,并且在联合开发时,有效避免合作者随意继承,调用代码,防止自己的设计思想被轻易破坏(当然是建立在合作者会与你沟通的情况下。不过话说回来,那些随意修改别人代码,还不告知别人的人,都是垃圾)。

    ————————————————

    版权声明:本文为CSDN博主「打死不写博客-真香」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/u012518665/article/details/80747791

    展开全文
  • 本篇文章给大家带来的内容是介绍java中抽象,让大家抽象有一个简单的了解,知道抽象是什么,怎么声明。有一定的参考价值,有需要的朋友可以参考一下,希望你们有所帮助。在我们介绍抽象之前,我们首先来...

    本篇文章给大家带来的内容是介绍java中抽象类,让大家对抽象类有一个简单的了解,知道抽象类是什么,怎么声明。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

    在我们介绍抽象类之前,我们首先来了解一下Java中的抽象是什么?

    在java中抽象是隐藏实现细节并仅向用户显示功能的过程。

    抽象只向用户显示基本内容并隐藏内部细节,例如,发送SMS,在其中输入文本并发送消息;但我们并不知道消息传递的内部处理是什么。

    抽象可以让你专注于对象所做的事情,而不是它是如何完成的。

    那么如何实现抽象?

    有两种方法可以在java中实现抽象

    1、抽象类(0到100%的实现抽象)

    2、接口(100%实现抽象)

    下面我们就来介绍Java中的抽象类是什么?

    在java中声明为abstract的类称为抽象类。它可以有抽象和非抽象的方法,需要扩展并实现其方法,但无法实例化。

    Java抽象类需要记住的要点:

    1、必须使用abstract关键字声明抽象类。

    2、它可以有抽象和非抽象的方法。

    3、它无法实例化。

    4、它也可以有构造函数和静态方法。

    5、它可以有最终方法,强制子类不要改变方法的主体。

    抽象类示例:abstract class A{}

    Java中的抽象方法是什么

    声明为抽象且没有实现的方法称为抽象方法。

    抽象方法的示例abstract void printStatus(); //没有方法体和抽象

    抽象类的示例

    具有抽象方法的抽象类的示例

    在此示例中,Bike是一个抽象类,只包含一个抽象方法。它的实施由Honda类提供。abstract class Bike{

    abstract void run();

    }

    class Honda extends Bike{

    void run(){

    System.out.println("安全运行..");

    }

    public static void main(String args[]){

    Bike obj = new Honda();

    obj.run();

    }

    }

    运行结果:

    e79ab81da45f4276de4d6ad3a0fa9425.png

    具有构造函数,数据成员和方法的抽象类

    抽象类可以有一个数据成员,抽象方法,方法体(非抽象方法),构造函数,甚至main()方法。//具有方法体的抽象类的示例

    abstract class Bike{

    Bike(){

    System.out.println("自行车制造");

    }

    abstract void run();

    void changeGear(){

    System.out.println("齿轮更换");

    }

    }

    class Honda extends Bike{

    void run(){

    System.out.println("安全运行..");

    }

    }

    class TestAbstraction2{

    public static void main(String args[]){

    Bike obj = new Honda();

    obj.run();

    obj.changeGear();

    }

    }

    运行结果:

    3ca04fdb418e62ecfd95c71d97a73799.png

    注:

    1、如果类中有抽象方法,则该类必须是抽象的。

    2、如果扩展具有抽象方法的抽象类,则必须提供方法的实现或使这个类抽象。

    总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

    展开全文
  • 类声明可以包含一个方法。演示此过程的程序如下:示例classMessage{publicvoidmessagePrint(){System.out.println("Thisisaclasswithasinglemethod");}}publicclassDemo{publicstaticvoidmain(Stringargs[]){...

    类声明可以包含一个方法。演示此过程的程序如下:

    示例class Message {

    public void messagePrint() {

    System.out.println("This is a class with a single method");

    }

    }

    public class Demo {

    public static void main(String args[]) {

    Message m = new Message();

    m.messagePrint();

    }

    }

    输出结果This is a class with a single method

    现在让我们了解上面的程序。

    使用单个成员函数创建Message类messagePrint()。演示这的代码片段如下-class Message {

    public void messagePrint() {

    System.out.println("This is a class with a single method");

    }

    }

    在该main()方法中,创建了Message类的对象m。然后messagePrint()调用方法。演示这的代码片段如下-public class Demo {

    public static void main(String args[]) {

    Message m = new Message();

    m.messagePrint();

    }

    }

    展开全文
  • Java 内部详解

    千次阅读 2021-03-06 17:54:43
    什么定义在一个内部的,称为内部(累不累),如下:public ...}}}C称为A的内部,简称内部A称为C的外部,简称外部而且内部能访问外部的成员(静态成员、实例成员),当然有一些限制,限制如下4种声明方...

    什么

    定义在一个类内部的类,称为内部类(累不累),如下:

    public class A {

    private int c = 1;

    public class C {

    public void test() {

    System.out.println("c:" + c);

    }

    }

    }

    C称为A的内部类,简称内部类

    A称为C的外部类,简称外部类

    而且内部类能访问外部类的成员(静态成员、实例成员),当然有一些限制,限制如下

    4种声明方式

    按照内部类的声明方式,分为4种内部类:

    静态内部类

    像类的静态成员一样声明的类,就称呼为“静态内部类”

    public class A {

    private static String b = "b";

    private int c = 1;

    // B是A的静态内部类

    public static class B {

    public void test() {

    System.out.println(b);

    }

    }

    }

    静态内部类,只能访问外部类的静态成员(方法和变量),并且可以像类的成员一样使用修饰符(public/protected/private);

    创建静态内部类对象的方式:A.B b = new A.B();

    成员内部类

    新类的实例成员(未加static修饰)声明的类,称为“成员内部类”

    public class A {

    private static String b = "b";

    private int c = 1;

    // C是A的成员内部类

    public class C {

    public void test() {

    System.out.println(c);

    System.out.println(b);

    }

    }

    }

    成员内部类,访问外部类的一切(静态,还是实例),就像成员方法一样,并且可以像类的成员一样使用修饰符(public/protected/private)

    创建成员内部类对象的方式:

    A a = new A();

    A.C c = a.new C();

    方法内部类

    在一个代码块声明的类称为方法内部类,代码块包括(方法内、静态代码块内、实例代码块内)

    public class A {

    private static String b;

    private int c;

    // 成员方法

    public void test() {

    final int d = 1;

    // 方法内部类

    class D {

    public void test() {

    // 访问静态变量

    System.out.println(b);

    // 访问实例变量

    System.out.println(c);

    // 访问方法final类型的局部变量

    System.out.println(d);

    }

    }

    }

    }

    方法内部类,和它所在的方法(代码块),具有相同的访问能力,如果上面代码是在static方法中声明的,那么内部类D不能访问c变量。

    jdk1.8 方法内部类,能够访问非final类型的局部变量,本质相当有在内部类D内保存了副本

    匿名内部类

    匿名内部类也就是没有名字的内部类

    正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

    但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

    内部类的本质

    内部类的语法颇为奇怪,我们来看看如下代码,编译后的字节码文件!

    public class A {

    private static String b = "b";

    private int c = 1;

    // 静态内部类

    public static class B {

    public void b() {

    System.out.println(b);

    }

    }

    // 成员内部类

    class C {

    public void c() {

    System.out.println(c);

    }

    }

    }

    3c5d74ced733449bdacb3135c1d4f6e4.png

    A.java文件被编译成了多个class文件

    A类对应A.class

    B类对应A$B.class

    C类对应A$C.class

    内部类会被编译成单独的class文件,那意味JVM解释执行class文件时类“B”和类A是独立的,由此可以见内部类也是一种语法糖!

    对于JVM来说,类A的private b和c 成员,怎么能分别被类B和类C访问到的了!

    用javap命令反编译类A.class来看看:

    4e846239620a4bb534e13f6dfb0e7799.png

    秘密就来自,编译器为外部类生的两个静态访问方法,Stinrg access$000()返回b变量的值,int access$100(A a)返回a对象的c成员变量值;

    而在静态内部类B中,编译器将访问静态变量b的地方替换为如上方法:

    // 静态内部类

    public static class A$B {

    public void b() {

    System.out.println(A.access$000());

    }

    }

    在成员内部类C中,原理也是如此,不过增加了更多的东西,反编译A$C.class:

    650e340691f6ee90cbb935c75d3b21b6.png

    新增了成员字段final A $this;

    构造方法添加形参 `A$C(A obj);

    访问外部类成员变量的地方会被替换成:System.out.println(A.access$100($this));

    你一定会好奇成员构造方法中的外部类对象的参数从哪里传入的!看看我们是怎么声明内部类的对象的

    A a = new A();

    A.C c = a.new C();

    将会被编译器替换成:

    A a = new A();

    A$C c = new A$C(a);

    内部类的使用时机

    两个类之间紧密联系时,可以使用内部类:

    当一个类需要访问另外一个类的许多属性时,内部类可以简化访问代码

    实现更好封装性,比如:B 类仅仅被A类访问时,可以将B类作为A的私有内部类

    使代码更简洁,匿名内部类

    展开全文
  • java 是公共的,应在名为.java 的文件中声明关注:162答案:2mip版解决时间 2021-01-16 12:24提问者关系已逝2021-01-15 16:19import javax.swing.JOptionPane;import java.text.DecimalFormat;//EmployeeTest.java...
  • new Timer().schedule... // 没有MyTimerTask将两个内部拿到main之外!改为如下就可以运行!import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TraditionalTimerTest {publ...
  • 展开全部内部md1结构烦杂,并强行加入了应该e69da5e6ba9062616964757a686964616f31333239313436用构造函数来实现的代码,你可以改一下结构:这样可以了,注意,下面图片是运行结果,并没有再报提示,警告等等;...
  • classComplex{privateintrealPart;privateintimaginPart;Complex(){this.realPart=0;this.imaginPart=0;}Complex(intrealPart,intimaginPart){this.realPart=realPart;this.imaginPar...class Complex{private int r...
  • Java声明对象

    千次阅读 2021-03-06 19:23:55
    第一步,你必须声明类型的一个变量,这个变量没有定义一个对象。实际上,它只是一个能够引用对象的简单变量。第二步,该声明要创建一个对象的实际的物理拷贝,并把对于该对象的引用赋给该变量。这是通过使用new ...
  • 如果方法声明为静态,则它是的成员,而不是属于该的对象。可以在不创建该的对象的情况下调用它。静态方法还具有访问的静态数据成员的能力。静态变量是变量。将为该的所有实例创建静态变量的单个副本。...
  • 开始学习java了,搭好环境,notepad++中新建一个java文件,新建一个HelloWorld,public class HelloWorld{public static void main(String[] args){System.out.println("Hello World!");}}保存文件时取名firstjava...
  • Java中的接口是方法原型的规范...嵌套接口Java允许在另一个接口内或在一个内将这些接口称为嵌套接口,从而编写/声明接口。示例在下面的Java示例中,我们有一个名为Sample的,其中包含一个名为myInterface的嵌套...
  • importjava.util.Scanner;classEmployee{privateStringEnum;privateStringEname;privateStringEsex;privateStringEapartment;Scannerinput=newScanner(System.in);voidin...package 员工;import java.util.S...
  • java类——Color

    2021-03-16 16:18:40
    public class ColorextendsObjectColor 用于封装默认 sRGB 颜色空间中的颜色,或者用于封装由 ColorSpace 标识的任意颜色空间中的颜色。每种颜色都有一个隐式的 alpha 值 1.0,或者有一个在构造方法中提供的显式的...
  • 对于初学者来说,这个error较为常见吧。 java公有的名字应该与xxx.java文件名字保持一致。
  • java抽象 继承

    2021-03-08 06:02:32
    关于java抽象 继承的搜索结果回答抽象和接口的区别:默认的方法实现抽象可以有默认的方法实现完全是抽象的。接口根本不存在方法的实现。抽象中可以有已经实现了的方法,也可以有被abstract修饰的方法(抽象...
  • 展开全部一个.java文件中可以有很多62616964757a686964616fe59b9ee7ad9431333335316561。不过注意以下几点:1.public权限的只能有一个(也可以一个都没有,但最多只有1个)package Test;public class Person {...
  • 匿名用户1级2017-01-15 回答2.Java中的和对象【第一部分草案】 收藏(本章的学习量相对比较大,我把整体分为三个部分讲解,第一个部分和第二个部分为Java关于和对象以及OO的基础,第三个部分为在OO设计技巧中针对...
  • DengCha.java:19:错误:内部DengCha.TestDengCha中的静态声明非法publicstaticvoidmain(String[]agrs){^修饰符'static'仅允许在常量变量声明中使用1个错误classDengCha{staticintsta...DengCha.java:19: 错误: 内部...
  • Java方法的声明和使用】

    千次阅读 2021-03-18 10:01:05
    //由加吧语句构成} 1、目前阶段所有方法的修饰符列表统一写成:public static 2、返回值类型可以是java中任何一种数据类型 3、如果该方法执行结束之后没有任何返回值,那么返回值数据类型必须写成void 4、如果方法的...
  • java中父类声明子类实例化

    千次阅读 2021-03-15 11:58:26
    问题:1、比如两个父类:Person 子类 Student extends Person在使用时候,这样写:Person person=null;...知识点:Java的多态性面向对象编程有三个特征,即封装、继承和多态。封装隐藏了的内部实现机制,从而...
  • 详解 Java 内部

    千次阅读 2021-03-06 18:10:33
    内部Java 里面算是非常常见的一个功能了,在日常开发中我们肯定多多少少都用过,这里总结一下关于 Java 中内部的相关知识点和一些使用内部时需要注意的点。从种类上说,内部可以分为四类:普通内部、...
  • java常量的声明使用定义等。什么是java常量?java常量的命名规则是什么? 使用java常量的优点有哪些?java常量属于变量的特殊形式。在定义常量的时候要注意的问题:常量要在定义时赋值常量定义之后就不能再改变它的...
  • java定义的格式是什么

    千次阅读 2021-03-01 11:04:54
    java定义的格式是什么发布时间:2020-06-29 11:14:51来源:亿速云阅读:166作者:Leahjava定义的格式是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
  • Java中的ArrayList或List声明

    千次阅读 2021-03-08 09:08:41
    基本上它允许Java在一个结构实现中通过genericstypes声明(如class MyStructure )存储多种types的对象,这是Java的主要特性之一。面向对象的方法以模块化和可重用性为基础,通过分离关注点 – 使用具有任何types对象...
  • java当中的成员变量定义了的属性,下面的文章要给大家详细讲解的就是成员变量的定义和声明的内容,一起来了解一下吧。例:一个学生当中一般都需要有姓名性别以及年龄等属性,这个时候的话,就需要定义姓名、...
  • 声明成员方法能够定义的行为,行为表示一个对象可以做的事情或者是可以从一个对象取得的信息,下面的话就来对java成员方法的声明做一个详细介绍。的各种功能操作都是用方法来实现的,属性只是提供了相应的数据。...
  • Java类变量类型

    千次阅读 2021-02-28 14:52:19
    声明和初始化在方法中实现,在方法结束后自动销毁。1 public classClassName{2 public voidprintNumber(){3 inta;4 }5 //其他代码6 }2.成员变量:定义在中,方法体之外。变量在创建对象时实例化。成员变量可被...
  • Java抽象

    2021-03-06 04:41:24
    Java可以创建一种类专门用来当做父类,这种称为“抽象”。“抽象”的作用类似“模板”,其目的是要设计者依据它的格式来修改并创建新的。但是不能直接由抽象创建对象,只能通过抽象派生出新的,再由它...
  • 今天在刷Java题的时候,写惯了C++发现忘记了Java数组的操作,遂把以前写的文章发出来温习一下。首先,数组有几种创建方式?Java程序中的数组必须先进行初始化才可以使用,所谓初始化,就是为数组对象的元素分配内存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 977,434
精华内容 390,973
关键字:

java对类的声明

java 订阅