java_day8练习题_让所有的猫定义测试类interfacetest,在测试类中,创建猫对象,给对象成员变量赋值,最后调用-程序员宅基地

Java基础第8天练习题

练习1

一、需求说明:定义子父类,父类如果被final修饰,测试子类能否继承父类。
二、再定义普通的子父类,父类中有方法被final所修饰,测试子类能否重写该方法。
三、定义一个类,该类中有final修饰的变量,并对其进行初始化,在该类中定义一个普通方法,测试这个变量值能否修改。

1.2.操作步骤描述
1.创建Father类,该类被final修饰。
2.创建Son类,并继承Father类,查看编译结果。
3.将上述内容注释掉,接下来,定义普通的子父类关系。
4.在父类中定义被final所修饰的method方法,方法中打印内容为method father
5.子类中重写父类中method方法,打印内容为method son,查看编译结果。
6.在该子类中定义一个成员变量age,初始化值为10,对该成员变量用final所修饰。
7.在该子类中定义show方法,在方法中,将age值改为20,并打印age值。
package com.scy.day8;

public final class Father {
   
    
}
package com.scy.day8;

public class son extends Father {
   
    
}
结果:Error:(3, 26) java: 无法从最终com.scy.day8.Father进行继承
package com.scy08;

public  class Father {
   
    
    public Father(){
   
    }

    public final void method(){
   
    
        System.out.println("method father");
    }
}
package com.scy08;

public class Son extends Father {
   
    
    public Son (){
   
    }

    @Override
    public final void method(){
   
    
        System.out.println("method son");
    }
}
java: com.scy08.Son中的method()无法覆盖
com.scy08.Father中的method()
 被覆盖的方法为final
package com.scy08;

public class Son extends Father {
   
    
    public final int age =10;
    public Son (){
   
    }
    @Override
    public  void method(){
   
    
        System.out.println("method son");
    }
    public void show(){
   
    
        this.age = 20;
        System.out.println(age);
    }
}
package com.scy08;
public class Test {
   
    
    public static void main(String[] args) {
   
    
        Son s = new Son();
        s.show();
    }
}
Error:(14, 13) java: 无法为最终变量age分配值

练习2

一、需求说明:定义学生类,学生类有三个属性:name、age、graduateFrom(此属性用static修饰),该类中有成员show方法,方法中打印三个成员变量的值。
二、在测试类中创建该学生对象,为对象中的成员变量赋值,并调用show方法。
三、在测试类中再次创建学生对象,为对象中的成员变量赋值,并调用show方法。
四、发现问题,每次创建学生对象都需要给学生的毕业院校属性进行赋值,那么当学生的毕业院校都属于同一所学校时,这样每次创建对象都需要重新赋值很不方便,故而,将该属性graduateFrom新增static所修饰,让这个成员变量被所有对象所共享。
2.2.操作步骤描述
1.定义学生类,学生类有三个属性:name、age、graduateFrom,该类中有成员show方法,方法中打印三个成员变量的值
2.在测试类中创建该学生对象,为对象中的成员变量赋值,并调用show方法。
3.在测试类中再次创建学生对象,为对象中的成员变量赋值,并调用show方法。
4.发现问题,每次创建学生对象都需要给学生的毕业院校属性进行赋值,那么当学生的毕业院校都属于同一所学校时,这样每次创建对象都需要重新赋值很不方便,故而,将该属性graduateFrom新增static所修饰,让这个成员变量被所有对象所共享。
5.在测试类中创建两次学生对象,第一次创建学生对象时,给对象中的属性赋值,并调用show方法,第二次创建学生对象时,只给对象中的name、age属性赋值,调用show方法。
6.发现第二个学生对象调用show方法时,打印的学生信息中发现,该学生的毕业院校和第一个学生对象一致,从而证明被static所修饰的成员被该类的所有对象所共享。
7.在第一次创建学生对象时,给该学生的静态变量graduateFrom赋值时,发现有黄色警告,说明该成员如果被静态所修饰,应该用类名直接调用,故而在创建对象之前先用类名调用成员
package com.scy08;	//Student类

public class Student {
   
    
    public String name;
    public int age;
    public static String graduateFrom;

    public void show(){
   
    
        System.out.println(name+age+graduateFrom);
    }
}
package com.scy08;

public class Test {
   
    
    public static void main(String[] args) {
   
    
        Student.graduateFrom = "南京大学";

        Student s = new Student();
        s.name  = "wang";
        s.age = 52;
        s.show();
        System.out.println("----------------");
        Student.graduateFrom = "北京大学";

        Student s1 = new Student();
        s1.name = "li";
        s1.age = 30;
        s1.show();
    }
}

结果:
wang52南京大学
----------------
li30北京大学

练习3

3.1.训练描述:【static方法的访问特点】
一、需求说明:定义学生类,类中有静态成员变量和非静态成员变量,有两个非静态成员方法show()、show2()和两个静态成员方法show3()、show4()
二、在学生类中演示静态方法能否访问静态成员及非静态成员,在非静态方法能否访问非静态成员及静态成员,并在静态中演示能否与this、super连用。

3.2.操作步骤描述
1.定义学生类,学生类有静态属性age,初始值为30。非静态属性name,初始值为林青霞
2.在该类中定义非静态方法show()、show2(),再定义静态方法show3()、show4()
3.在show2()方法与show4()方法中,方法体不需要写内容。
4.在非静态方法show()中打印name和age值,调用show2()、show4()方法,并用this调用成员变量为其赋值。
5.在静态方法show3()中打印name和age值,调用show2()、show4()方法,并用this调用成员变量为其赋值
package com.scy08;

    public class Student {
   
    
        public String name="林青霞";
        public static int age=30;
        public void show1(){
   
    
            System.out.println(name+age);
            show2();
            show4();
            this.name = "王力宏";
            this.age = 10;
            System.out.println(name+age);
        }
        public void show2(){
   
    
        }
        public static void show3()
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/rinima438/article/details/104788634

智能推荐

Python程序员周边(一)----键盘选择+修改按键位置_82键少了哪些键位-程序员宅基地

文章浏览阅读1.5k次。Python程序员来说,啥键盘最合适?来看看Python几个有代表性的语法:1、没有分号 " ; "2、缩进代表段落3、简介,使得一行可以凑更多的代码,行数少就能完成任务4、对于新手来说,感受最深的就是各种乱七八糟的符号最麻烦,尤其是各种括号里面需要写东西的,更麻烦,比如在Pycharm中:for i in range(1,66,2): print('this is : %s' ..._82键少了哪些键位

html++相对地址什么意思,详解相对路径和绝对路径的区别-程序员宅基地

文章浏览阅读377次。HTML初学者会经常遇到这样一个问题,如何正确引用一个文件。比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链接(hyperlink)?怎样在一个网页中插入一张图片如果你在引用文件时(如加入超链接,或者插入图片等),使用了错误的文件路径,就会导致引用失效(无法浏览链HTML初学者会经常遇到这样一个问题,如何正确引用一个文件。比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链..._html网址的相对地址

TreeTable的应用-程序员宅基地

文章浏览阅读1.3w次。这个Jquery插件确实很实用_treetable

华为如何显示我的电脑连接到服务器地址,我的电脑如何访问服务器地址-程序员宅基地

文章浏览阅读295次。我的电脑如何访问服务器地址 内容精选换一换“包年/包月”计费模式属于预付费,即您已提前支付资源的费用,例如购买包年/包月的裸金属服务器。包年/包月资源到期前,若您未主动续费或者虽然开通了自动续费但自动续费失败,则到期后资源会被冻结,并且进入保留期。保留期到期前,若您主动续费,则资源会被解冻。保留期到期前,若您未主动续费,则保留期结束后资源会被释放。保留期的时长会根据客户的等级有所SSH密钥是一种加..._华为笔记本的服务器地址在哪里

failed to compute cache key: “/src“ not found: not found_failed to compute cache key: "/src" not found: not-程序员宅基地

文章浏览阅读8.5k次。问题情况docker执行docker build命令是出现的问题,Dockerfile如下FROM node:lts-slimLABEL maintainer knight <[email protected]>ENV NODE_ENV=productionWORKDIR /opt/k8s-mongo-sidecarCOPY package.json package-lock.json /opt/k8s-mongo-sidecar/RUN npm installCOP_failed to compute cache key: "/src" not found: not found

vSphere环境虚机如何添加共享磁盘?三步骤就对了!_只有厚置备置零磁盘可以进行磁盘共享-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏5次。本期问题:vSphere环境虚机如何添加共享磁盘?点击查看更多技术故障解决方案前提条件:给虚拟机添加共享磁盘只能在虚拟机关机时进行,否则SCSI控制器模式无法更改。1. 选择第一台虚机,编辑设置添加新的SCSI控制器,选择虚拟或者物理模式(具体取决于需求)。添加新的硬盘,选择新添加的SCSI控制器,磁盘置备为厚置备置零(需要到存储策略中检查确认)。“虚拟设备节点”切记选择独立-持久..._只有厚置备置零磁盘可以进行磁盘共享

随便推点

Git 入门教程-程序员宅基地

文章浏览阅读214次。Git 入门教程Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。Git 与 SVN 区别Git 不仅仅是个...

将token添加到请求头中进行网络请求_nsmutableurlrequest设置token-程序员宅基地

文章浏览阅读1.7w次。//网络请求字符串NSString *urlString = @"";//UTF-8转码NSString *urlStr = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//创建请求对象NSMutableURLRequest *request = [[AFHTTPRequestSeri_nsmutableurlrequest设置token

Android LinearLayout布局_linearlayout按比例分配-程序员宅基地

文章浏览阅读2.8k次,点赞4次,收藏6次。1. LinearLayout类线性布局(LinearLayout)将子视图元素以线性方式显示。主要属性orientation,horizontal代表水平方向,vertical代表垂直方向weight,按一定比例分配。计算完剩余视图后,按比例分配。最外层LinearLayout为垂直布局,而第一个子控件时水平布局,最后三个子控件按1:2:3分配高度&amp;amp;amp;amp;amp;amp;lt;LinearLay..._linearlayout按比例分配

java1.8安装步骤,java jdk1.8.0_221 安装步骤-程序员宅基地

文章浏览阅读717次。一、下载jdkOracle JDK下载官网https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载jdk1.8.0_221. 需要注册账号登陆才能下载。下载完成,双击jdk-8u221-windows-x64.exe,进行安装。二、安装jdk安装前准备工作,D盘新建文件夹JA..._jdk1.8.0_221下载官网

java高级面试题(易错题)_用throw定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常-程序员宅基地

文章浏览阅读4.6k次,点赞3次,收藏18次。5.// point Xpublic class Foo { public static void main(String[] args) throws Exception { PrintWriter out = new PrintWriter(new java.io.OutputStreamWriter(System.out), true); System.out.println("Hello"); }}选项中哪一个代码插入到point X能够使代_用throw定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常

十五个实用的mysql语句分享_分享6个有用的MySQL语句_mysql-程序员宅基地

文章浏览阅读102次。今天给大家介绍六条比较有用的mysql的SQL语句,可能很多人都通过php来实现这些功能。1. 计算年数你想通过生日来计算这个人有几岁了。SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;2. 两个时间的差取得两个 datetime 值的差。假设 dt1 和 dt2 是 datetime..._mysql中有什么好玩的语句

推荐文章

热门文章

相关标签