精华内容
下载资源
问答
  • 请编制程序,其功能是:内存中连续存放着16个10位二进制数DB9DB8…DB0,每个二进制数据均用两个字节表示,其存放格式均为:转换结果按原序存放在内存中。例如:内存中有:C048H,4091H,0080H,…结果为: 23H,01H...

    请编制程序,其功能是:内存中连续存放着16个10位二进制数DB9DB8…DB0,每个二进制数据均用两个字节表示,其存放格式均为:转换结果按原序存放在内存中。例如:内存中有:C048H,4091H,0080H,…结果为: 23H,01H,45H,02H,00H,02H…部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 16STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DW N DUP(?)RESULT DB N*2 DUP(0)NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节数CALL LOAD ; 从'INPUT1.DAT'中读取数据; ******** BEGIN ********MOV DI,OFFSET RESULTMOV BX,0MOV CH,NPRO: MOV AH,BYTE PTR SOURCE[BX]MOV AL, (1)MOV DL,AH ; 10 位无符号二进制数高八位MOV DH,AL ; 10 位无符号二进制数低二位MOV CL,2SHL AX, (2)SHL DX, (3)MOV AL,DHMOV [DI], (4)MOV [DI+I], (5)ADD DI,2A

    题型:

    展开全文
  • JAVA循环嵌套 方法定义与重载 数组 数组异常 和前一天一样,循环嵌套方法和数组都属于实操出真知的类型,尤其是方法定义与调用是java的重中之重,这些在日后还是得面对不同类的题型多加练习 Day04 循环嵌套 ...

    JAVA循环嵌套 方法的定义与重载 数组 数组异常 练习

    和前一天一样,循环嵌套,方法和数组都属于实操出真知的类型,尤其是方法的定义与调用是java的重中之重,这些在日后还是得面对不同类的题型多加练习 Day04

    循环嵌套

    在大循环内,如果每次循环都是相似同带有重复性的操作,就可以使用循环简化操作。可以使处理循环问题更加灵活。嵌套的可以是分支结构的语句,也可以是循环语句。

    格式

    ​ for(初始化语句1;循环条件表达式1; 初始化变量1 的自增){

    循环体语句

    ​ for(初始化语句2; 循环的条件表达式2;初始化变量2的自增*){

    循环体语句;

    ​ }

    ​ }

    执行流程:

    1. 初始化语句1
    2. 判断条件表达式1 如果是false 结束整个循环
    3. 如果是true就初始化语句2
    4. 判断条件表达式2如果是false就结束整个循环,完成初始化变量1的自增
    5. 如果是true就执行循环体语句,完成初始化变量2的自增,完成初始化变量1的自增
    6. 完成初始化变量1的自增,再返回第六步重复之前操作以此类推

    举例

    打印三角形 5行 第一行1颗星,第二行2颗星…第5行五颗星

    package Chating;
    public class Ex {
    	public static void main(String[] args) {
    		for (int i = 1; i <= 5; i++) {//外循环控制行数。i的初始值为1,需求是要5行,所以i自增后至多小于等于5
    			for (int j = 0; j < i; j++) {//内循环表示每行打印的*星数,打印的多少j跟着行数i变
    				System.out.print("*");
    			}
    			System.out.println();//每打印一行星后换行
    		}
    	}
    }
    

    在这里插入图片描述


    方法

    具有特定功能可以重复调用的代码段

    一些代码段要经常使用,每次都写一遍效率太低,用大括号括起来 再起个名字,之后可以直接通过名字来调用代码段

    特点:提高了代码的复用性封装性,简化了代码的思维难度

    方法的定义

    格式:

    修饰符 返回值类型 方法名称(参数列表) {

    方法体语句;

    return 返回值;

    ​ }

    修饰符:这里先写Public static

    返回值类型:方法执行后会产生数据返回给调用者,这里表示的是返回数据的数据类型(填int 返回的就是整数,填String返回的就是字符串)如果不需要返回值 填void即可

    方法名称 :名字是合法的标识符即可

    参数列表:我们定义方法是要完成功能,比如要计算两个整数的和,那在调用该方法时。需要从外部传入两个整数类型的数据在这个变量的容器中,这里的参数列表就表示将要传递进来的数据类型

    方法体语句:即调用者想要完成的功能

    return返回值:要返回给调用者的最终结果,如果没有返回值,可以单写一个return表示该方法的结束

    参数列表:

    • 形式参数: 在方法定义的时候使用,来接收调用该方法时传递的参数。需要加上数据类型,相当于定义了一个变量,只有变量的声明,没有进行赋值,
    • 实际参数: 在方法调用的时候使用,即传递给被调用方法的值,不能加上数据类型的参数,也就是对变量进行赋值,使用逗号隔开,顺序必须和定义方法的时候形式参数的顺序一致

    方法的调用

    方法调用的三种格式 :直接调用 打印调用 赋值调用

    ​ 直接调用:没有的返回的结果 单纯的使用方法

    ​ 打印调用:把方法的返回值写入输出语句打印出来

    ​ 赋值调用:把方法的结果赋值给变量,这个变量可以重复使用

    方法定义的注意事项:

    • 方法的顺序无所谓
    • 方法中不能嵌套定义
    • 方法定义后必须调用才能执行,自身不会执行
    • 如果方法有返回值 必须加上return+返回值
    • return后的“返回值”,必须和方法名称前面的“返回值类型”保持对应
    • 如果没有返回值 则可省略return 返回值类型为void

    举例

    需要计算两个整数的和的方法

    package Chating;
    public class Ex {
    	public static void main(String[] args) {
    		getSum(2,8);//调用getSum()方法
    		System.out.println("-------------------------");//分割线
    		System.out.println(getSum2(2,8));//打印调用
    	}
    	public static void getSum(int a,int b) {//需求是录入两个整数 所以形参都是int类型的a,b
    		int sum = a + b;//两个整数相加
    		System.out.println(a+"与"+b+"的和为"+sum);//因为是输出语句结果没有返回值,所以之前返回值类型是void
    	}
    	public static int getSum2(int a,int b) {//需要的返回值类型是int,之前返回值类型是int
    		int sum = a + b;
    		return sum;//返回值类型是int
    	}
    }
    

    在这里插入图片描述

    方法的重载

    在同一类中,方法名相同,参数列表(参数列表 类型 个数 顺序 不同)不同,与返回值无关

    只要记住一个方法名称 就能实现相似的多个功能

    举例

    package Chating;
    public class Ex {
    	public static void main(String[] args) {
    		System.out.println(getSum(2,8));
    		//方法名相同,参数列表(参数列表 类型 个数 顺序 )不同
    		System.out.println(getSum(2.2,8.8,1.1));
    		//方法名都是getSum(),参数列表 类型是double,个数是3个,都不同
    	}
    	public static int getSum(int a,int b) {
    		int sum = a + b;
    		return sum;
    	}
    	public static double getSum(double a,double b,double c) {
    		double sum = a + b + c;
    		return sum;
    	}
    }
    

    在这里插入图片描述


    数组

    就是一个储存相同类型数据的容器

    定义的格式

    元素的数据类型[] 数组名 = new 元素的数据类型[数组容器的大小];

    在这里插入图片描述

    举例

    package Chating;
    public class Ex {
    	public static void main(String[] args) {
    		//元素的数据类型[] 数组名 = new 元素的数据类型[元素的个数];
    		int[] arr = new int[3];
    		System.out.println(arr);
    	}
    }
    

    在这里插入图片描述

    • [ : 表示打印的是一个一维数组
    • I:表示数组中的元素的数据类型 I代表int类型
    • @: 表示一个普通的间隔符
    • 15db9742:是数组的内存地址

    数组初始化

    给数组申请内存空间,并给该空间里每个元素位置储存数据的过程

    初始化的分类:

    • 动态初始化:在定义数组时候就划分了内存空间 除了初始值(默认为0,无值为null)其余什么都没有,在程序的运行过程中,才知道每个元素被赋予什么值,一般运用在知到数组中要放什么数据,但是只知道数组中应该存储的元素的个数
    • 静态初始化 在定义数组时就确定了值 比如 人的性别 国籍等一般不会改变的值
    动态初始化格式:

    ​ 元素的数据类型[] 数组名 = new 元素的数据类型[元素的个数]

    元素的赋值的方式:

    ​ 数组名[元素的索引] = 元素值;

    索引:代表每个元素在数组中的位置,这个位置从0 开始 到元素个数-1

    元素要一个一个赋值

    如果没有给元素赋值,这个元素也是有默认值,默认值是0

    静态初始化格式:

    元素的数据类型[] 数组名 = new 元素的数据类型[]{元素1,元素2,元素3…}

    每个元素的数据类型前后一致

    元素的个数,取决于大括号中元素的个数

    简化的格式:

    ​ 元素的数据类型[] 数组名 = {元素1,元素2,元素3…}

    举例

    动态初始化

    package Chating;
    public class Ex {
    	public static void main(String[] args) {
    		//数组的动态初始化
    				//需求 定义数组  五人制足球
    				String[] player = new String[5];
    				//第一个人
    				player[0] = "萨拉赫";
    				//第二个人
    				player[2] = "马内";
    				//第三个人
    				//第四个人
    				player[3] = "菲尔米诺";
    				//第五个人
    				player[4] = "奥里吉";
    				//取出数组中元素的值  数组名[索引]
    				System.out.println(player[0]);
    				System.out.println(player[1]);
    				System.out.println(player[2]);
    				System.out.println(player[3]);
    				System.out.println(player[4]);
    	}
    }
    

    在这里插入图片描述

    静态初始化

    package Chating;
    public class Ex {
    	public static void main(String[] args) {
    		//静态初始化
    		//定义一个数组 存储 3个同学的考试分数
    		int[] count = new int[] {98,76,82};//在数组创建的过程就已经赋值了
    		System.out.println(count[0]);
    		System.out.println(count[1]);
    		System.out.println(count[2]);
    		System.out.println("===============================");
    		int[] c = {98,76,82};
    		System.out.println(c[0]);
    		System.out.println(c[1]);
    		System.out.println(c[2]);
    	}
    }
    

    在这里插入图片描述

    数组的异常

    索引越界异常

    Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 3

    ​ at com.ujiuye.demo.Demo15.main(Demo15.java:6)

    产生原因大多为:要获取到的索引值超出了数组的范围

    空指针异常

    Exception in thread “main” java.lang.NullPointerException

    ​ at com.ujiuye.demo.Demo16.main(Demo16.java:8)

    空:null,一旦一个引用数据类型变量被赋值为空,他就不再记录堆内存中的某个地址

    空指针异常原因大多为:当引用类型变量不再指向任何位置的时候,你还用这个变量,就会抛出空指针异常

    展开全文
  • 我正在开发一个Android应用程序(Java),它通过HTTP POST使用Yamaha蓝光播放器的API.播放器具有XML格式的严格命令集.命令遵循层次结构:虽然大多数外部XML元素始终相同,但内部结构属于播放器函数的类型.例如,播放/暂停...

    我正在开发一个

    Android应用程序(Java),它通过HTTP POST使用Yamaha蓝光播放器的API.播放器具有XML格式的严格命令集.命令遵循层次结构:虽然大多数外部XML元素始终相同,但内部结构属于播放器函数的类型.例如,播放/暂停/停止功能在XML中具有相同的路径,而跳过功能具有其他父元素.您可以在下面的代码示例中看到我的意思.

    public enum BD_A1010 implements YamahaCommand

    {

    POWER_ON ("On"),

    POWER_OFF ("Network Standby"),

    TRAY_OPEN ("Open"),

    TRAY_CLOSE ("Close"),

    PLAY ("Play"),

    PAUSE ("Pause"),

    STOP ("Stop"),

    SKIP_REVERSE ("Rev"),

    SKIP_FORWARD ("Fwd");

    private String command;

    private BD_A1010 (String command)

    {

    this.command = command;

    }

    public String toXml ()

    {

    return "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + this.command + "";

    }

    }

    正如你所看到的,我尝试了扁平的枚举方式,它工作得很好.我可以像我一样使用我的RemoteControl类的枚举:

    remoteControl.execute(BD_A1010.PLAY);

    枚举的.toXml()方法返回发送给播放器所需的完整XML代码.现在这是我的问题:我需要一种更好的方法来构建Java类中的函数层次结构.我想这样使用它:

    remoteControl.execute(BD_A1010.Main_Zone.Power_Control.Power.On);

    就像嵌套的枚举或类一样.命令的每个级别都应该在其自身内部定义XML元素.此外,路径上的每个命令只能定义可能的子命令:例如,在Main_Zone.Play_Control之后,我可能只使用.Play或.Skip,而不是.Tray或其他任何东西.在链的末尾,我喜欢调用.toXml()来获取完整的XML命令.

    在Java中将这个hiarachy定义为(嵌套)类的最佳方法是什么?应该很容易定义 – 尽可能少的代码.

    稍后,应该可以合并两个或多个命令以获得如下所示的组合XML – 但这对于第一次尝试来说并不那么重要.

    remoteControl.execute(

    BD_A1010.Main_Zone.Power_Control.Power.On,

    BD_A1010.Main_Zone.Play_Control.Skip.Rev,

    BD_A1010.Main_Zone.Play_Control.Play.Pause

    );

    On

    Rev

    Pause

    展开全文
  • java方法定义的时候是不允许嵌套一个方法吗 内部类分为静态和非静态的吗
  • 概述Java允许在一个类的内部定义一个类,这样的类称为嵌套类。例:class OuterClass { ... class NestedClass { ... } }嵌套类分为两类:静态和非静态。 用static 修饰的嵌套类称为静态嵌套类,未使用static修饰...

    274b22f281f2c971aaa8915efe4a5357.png

    概述

    Java允许在一个类的内部定义一个类,这样的类称为嵌套类。例:

    class OuterClass {
        ...
        class NestedClass {
            ...
        }
    }

    嵌套类分为两类:静态和非静态。 用static 修饰的嵌套类称为静态嵌套类,未使用static修饰的嵌套类称为内部类。

    class OuterClass {
        ...
        static class StaticNestedClass {
            ...
        }
        class InnerClass {
            ...
        }
    }

    嵌套类是其所在类的成员。非静态嵌套类(内部类)可以访问所在类的其他成员(包括用private修饰的)。 静态嵌套类不能访问所在类的其他成员。嵌套类可以拥有private, public, protected, or package private等访问权限。 (外部类只能有public 或 package private两种访问权限)

    使用内部类的原因

    1. 将仅在一处使用的类整合到使用该类的类中:若一个类仅对某个类有用,则直接将其嵌入该类中,让两个类耦合不失为一种合理的选择。使用这种嵌入式的“帮助类”可以使代码包的结构更简介。
    2. 增强封装:假设有两个外部类,A和B。B需要访问A类的私有成员。只有将B类封装进A类时,B类才能访问A类中声明的私有成员。与此同时,B类也与其所在类以外的类隔绝开来。
    3. 增强代码的可读性和可维护性: 当某个类只有在一个类中才会用到时,可以将其封装进该顶层类中。

    静态嵌套类

    静态嵌套类与其外部类类本身相关联。和静态方法一样,静态嵌套类不能直接引用其所在类的实例变量和实例方法。

    Note: A static nested class interacts with the instance members of its outer class (and other classes) just like any other top-level class. In effect, a static nested class is behaviorally a top-level class that has been nested in another top-level class for packaging convenience.
    注意:静态嵌套类访问其所在的外部类(和其他类)中的实例成员时访问方式和其他任何顶层类别无二致。实际上,从行为方式上来看,静态内部类就是为了打包方便而被封装进另一个顶层类中的一个顶层类。

    使用内部类的外部类类名访问静态嵌套类: OuterClass.StaticNestedClass 创建静态嵌套类: OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();

    内部类

    内部类与其外部类的实例相关联,可直接引用该实例的实例变量和实例方法。内部类本身不能定义静态成员。内部类的实例只能存在于其外部类的实例中。 创建内部类的实例时必须先创建其外部类的实例。之后可按下面的格式创建: OuterClass.InnerClass innerObject = outerObject.new InnerClass();

    存在两种特殊的内部类:

    Local Classes (The Java™ Tutorials > Learning the Java Language > Classes and Objects)docs.oracle.comAnonymous Classesdocs.oracle.com

    遮蔽(Shadowing)

    若在某个具体作用域(例如内部类或方法签名)中定义的变量的变量名(例如成员变量或参数名)与外部类的作用域中定义的相同,则较小作用域中定义的变量会遮蔽较大作用域中定义的变量。因此不能仅凭变量名本身引用该变量。 例:

    public class ShadowTest {
    
        public int x = 0;
    
        class FirstLevel {
    
            public int x = 1;
    
            void methodInFirstLevel(int x) {
                System.out.println("x = " + x);
                System.out.println("this.x = " + this.x);
                System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
            }
        }
    
        public static void main(String... args) {
            ShadowTest st = new ShadowTest();
            ShadowTest.FirstLevel fl = st.new FirstLevel();
            fl.methodInFirstLevel(23);
        }
    }
    
    输出如下:
    
    x = 23
    this.x = 1
    ShadowTest.this.x = 0

    总结

    • 优先级 --> 方法签名中的变量> 内部类的成员变量 > 外部类的成员变量
    • 访问方式 --> varibaleName this.variableName OuterClass.this.variableName

    下一篇:Polymorphism(多态)

    展开全文
  • 我有一组扩展一些基本实体的类.此集合中的类也可以相互扩展,从而创建嵌套层次...以下是为我的模式定义的三个示例类:BaseEntity.javapublic abstract class BaseEntity {Class clazz;public BaseEntity(Class cla...
  • Java语言基础组成—函数Java语言由8个模块构成...1.函数的定义1)定义:指在类中的具有特定功能的一段独立小程序,也称为方法。2) 格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2, ... ){执...
  • Java允许类的嵌套定义。这里将讲解如何在一个类中嵌套定义另一个类。内部类Java允许我们在类的内部定义一个类。如果这个类是没有static修饰符,那么这样一个嵌套在内部的类称为内部类(inner class)。内部类被认为是...
  • 一、什么是嵌套类及内部类可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类...其二、在一个方法(外部类的方法)中定义的内部类;其三、匿名内部类。下面...
  • java接口嵌套

    2020-03-16 18:04:16
    文章目录java接口接口嵌套接口中嵌套接口类中嵌套接口 java接口 接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过implements接口的方式,从而来实现接口的抽象方法。 接口默认都是...
  • 下午突然想到一个问题:* 形式如下的两种方法,哪一种的效率更高一点?第一种:A=fun1(args1[]);B=fun2(A,args2[]);C.fun3(B);123第二种:C.fun3(fun2(fun1(args1[]),args2[]));1也就是说,一段结果相同的代码,是将...
  • 方法不可以嵌套, 定义在类中方法方法, 必须调用才会执行 方法的用法 1.有返回值的方法 语法格式 修饰符 返回值类型 方法名 (参数列表) { 功能代码段; return 返回的最终结果; } 1. 修饰符 : 访问权限修饰符, ...
  • Java对象想要通过网络传输,必须实现序列化接口,于是我们在Service中定义了了一个实现了序列化接口的内部类,然后调用远程接口将其传输到网络上。一运行报异常:不能将没有实现序列化接口的Object序列化。怎么回事...
  • 嵌套类和内部类:在一个类里边定义的类叫做嵌套类,其中没有static修饰的嵌套类是我们通常说的内部类,而被static修饰的嵌套类不常用。有的地方没有嵌套类和内部类的区分,直接是嵌套类就称作内部类,没有嵌套类的...
  • 二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。异常是针对方法来说的,抛出、声明抛...
  • java嵌套_Java嵌套

    2021-02-12 09:43:28
    展开全部这么说看636f...2. 我们在定义类时,会根据某特性抽象出一个类,这个类可以完成某些特有的功能如:设计一个打印类Printer,有个一个打印方法print(Object obj)3. 因为我们定义的类是public的,此时Pr...
  • 为什么Java方法里面不能再嵌套方法?直接原因: 这是Java基本语法定义的,方法中不可以再次声明方法,只能调用其他的方法。个人理解: 1.方法栈是需要一个载体的,这个载体就是Class,如果一个方法的上一级不是一...
  • 首先,定义一个基于模板方法的类来处理try / catch混乱import java.io.Closeable;import java.io.IOException;import java.util.LinkedList;import java.util.List;public abstract class AutoFileCloser {// the ...
  • 首先,定义一个基于模板方法的类来处理try / catch混乱import java.io.Closeable;import java.io.IOException;import java.util.LinkedList;import java.util.List;public abstract class AutoFileCloser {// the ...
  • 定义一个Student类,通过主类调用,其中学生的生日表示方法嵌套DAta类,并通过调用系统当前年份,计算学生年龄并输出 Student类包含 变量:sno(学号),name(姓名),age(年龄),sex(性别),birth(出生年月日) ...
  • 一、什么是嵌套类及内部类?可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。...其二、在一个方法(外部类的方法)中定义的内部类;其三、匿名内部类。下...
  • 1. Java三大版本Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程Enterprise ...
  • java嵌套接口

    千次阅读 2017-05-28 12:25:03
     1、接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值  2、接口中的方法默认都是 public abstract 类型的:  3、接口默认也是abstract的的:public ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,349
精华内容 539
关键字:

java方法嵌套定义

java 订阅