11.6第11次作业

电视机 圆

//1.
//例题9.1 制作圆类,根据圆的半径求出周长及面积 package com.atlu; //抽象的方法构成类,把属性和方法进行封装 public class Circle { // 两个方面一个是字段也称属性,另一个是方法,也称实现的功能 private double radius; // 构造方法,有参构造 public Circle(double radius) { this.radius = radius; } //方法的重载,参数不同 // 构造方法,无参构造 public Circle() { this.radius = 1; } // 求圆面积的方法 public double getArea() { return radius * radius * Math.PI; } // 求圆周长的方法 public double getPerimeter() { return 2 * Math.PI * radius; } public void setRadius(double newRadius) { this.radius=newRadius; } }
public class DemoCircle {
    public static void main(String[] args) {
        Circle circle1=new Circle();
        double area=circle1.getArea();
        System.out.println(area);
        Circle circle2=new Circle(10);
        System.out.println(circle2.getArea());
        System.out.println(circle1.getPerimeter());
        System.out.println(circle2.getPerimeter());
        double ridius=10;
        double areaCircle=Math.PI*ridius*ridius;
        System.out.println(areaCircle);
        circle2.setRadius(5);
        System.out.println(circle2.getArea());
    }
}

 

 

//作业2:把上边的两个圆的类合并成一个类,并实现同样功能

package com.atlu;

public class SimpleCircle {
    private double radius;
    public SimpleCircle() {
        this.radius=1;
    }
    public SimpleCircle(double radius){
        this.radius=radius;
    }
    public double getArea() {
        // TODO Auto-generated method stub
        return Math.PI*radius*radius;
    }
    public double getPerimeter() {
        return 2*Math.PI*radius;
    }
    
    public static void main(String[] args) {
        SimpleCircle cir1=new SimpleCircle();
        System.out.println("The area of the circle of radius "+cir1.radius+" is "+cir1.getArea());
        System.out.println("The perimeter of the circle of radius "+cir1.radius+" is "+cir1.getPerimeter());
        SimpleCircle cir2=new SimpleCircle(10);
        System.out.println("The area of the circle of radius "+cir2.radius+" is "+cir2.getArea());
        System.out.println("The perimeter of the circle of radius "+cir2.radius+" is "+cir2.getPerimeter());
    }
}

3.
/例题9.3 造一台电视机,并且实现调频道和调声音大小功能
public class TV {
    
    public int channel=1;
    public int volumeLevel=1;
    public boolean on=false;
    
    public TV() {
        
    }
    public void turnOn() {
        on =true;
        System.out.println("叮咚!");
    }
    public void turnOff() {
        on=false;
        System.out.println("呜呜!");
    }
    public int getChannel() {
        return channel;
    }
    public void setChannel(int channel) {
        if(on) {
            System.out.println("你想看啥!");
            if(channel>=1&&channel<=120) {
                this.channel = channel;
                System.out.println("卡到 "+channel+" 台了!");
            }else {
                System.out.println("信号大概去外星球了!!");
            }
        }else {
            System.out.println("滋滋!");
        }
    }
    public int getVolumeLevel() {
        return volumeLevel;
    }
    public void setVolumeLevel(int volumeLevel) {
        if(on) {
            System.out.println("想让我大点声说话吗,偏不,哈哈!");
            if(volumeLevel>=1&&volumeLevel<=7) {
                this.volumeLevel = volumeLevel;
                System.out.println("已经 "+volumeLevel+" 大小说话了啊。");
            }
        }else {
            System.out.println("咔咔!");
        }
        
    }
    public void channelUp() {
        if(on&&channel<120) {
            channel++;
        }
    }
    public void channelDown() {
        if(on&&channel>1) {
            channel--;
        }
    }
    public void volumeUp() {
        if(on&&volumeLevel<7) {
            volumeLevel++;
        }
    }
    public void volumeDown() {
        if(on&&volumeLevel>1) {
            volumeLevel--;
        }
    }
    
    
}


//测试电视机的类

package com.atlu;

public class TestTv {

    public static void main(String[] args) {
        TV tv1=new TV();
        tv1.turnOff();
        tv1.setChannel(30);
        tv1.setVolumeLevel(3);
        
        TV tv2=new TV();
        tv2.turnOn();
        tv2.setChannel(130);
//        tv2.setVolumeLevel(3);
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
        tv2.channelUp();
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
        tv2.channelUp();
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
        tv2.channelUp();
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
        tv2.volumeUp();
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
        tv2.volumeUp();
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
        tv2.volumeUp();
        System.out.println("TV2's channel is "+tv2.channel+" and volume is "+tv2.volumeLevel);
       
        
    }

}
 
  
 
4
package com.atlu;

public class StaticDemo {
    public static void main(String args[]){
        new StaticDemo().fun();
    }
    public void fun(){
                System.out.println("Hello World!!!");
    }

}

5

package com.atlu;
public class DemoPerson {
    private String name;
    private int age;

public DemoPerson(String name,int age){
    this.name=name;
    this.age=age;
}
public boolean compare(DemoPerson1 per){
    if(this.name.equals(per.name)&&this.age==per.age){
        return true;
    }else{
        return false;
    }
}
public String getName(){
    return this.name;
}
public int getAge(){
    return this.age;
}


    public static void main(String args[]){
        DemoPerson1 per1=new DemoPerson1("张三",30);
        DemoPerson1 per2=new DemoPerson1("张三",30);
        if(per1.compare(per2)){
            System.out.println("是同一个人!");
        }
    }
};

6.
package com.atlu;
public class DemoPerson1 {
    String name;
    int age;

public DemoPerson1(String name,int age){
    this.name=name;
    this.age=age;
}
public boolean compare(DemoPerson1 per){
    if(this==per){//地址相等
        return true;
    }
    if(this.name.equals(per.name)&&this.age==per.age){
        return true;
    }else{
        return false;
    }
}
public String getName(){
    return this.name;
}
public int getAge(){
    return this.age;
}


    public static void main(String args[]){
        DemoPerson1 per1=new DemoPerson1("张三",30);
        DemoPerson1 per2=new DemoPerson1("张三",30);
        if(per1.compare(per2)){
            System.out.println("是同一个人!");
        }
    }
};

7.
package com.atlu;
class DemoPerson2{
    private String name;
    private int age;
    public DemoPerson2(String name,int age){
        this.name=name;
        this.age=age;
    }
    public void fun(DemoPerson2 temp){
        temp.name="李四";
        temp.age=33;
    }
    public String getName(){
        return this.name;
    }
    public int getAge(){
        return this.age;
    }

    public static void main(String args[]){
        DemoPerson2 per=new DemoPerson2("张三",30);
        per.fun(per);{
            System.out.println(per.getName()+"-->"+per.getAge());
        }
    }
}


8.
package com.atlu;
    class DemoPerson3{
        private String name;
        private int age;
    public DemoPerson3(String name,int age){
            this.name=name;
            this.age=age;
        }
    public String getName(){
        return this.name;
    }
    public int getAge(){
        return this.age;
    }
    public static void main(String args[]){
        DemoPerson3 per1=new DemoPerson3("张三",30);
        DemoPerson3 per2=new DemoPerson3("张三",30);
        if(per1.getName().equals(per2.getName())&&per1.getAge()==per2.getAge()){
            System.out.println("是同一个人!");
        }
    }
};

 
  

转载于:https://www.cnblogs.com/kally004/p/7825728.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
### 回答1: 11.6题要求我们实现一个简单的Java虚拟机,可以执行一些简单的Java程序。具体来说,我们需要实现以下几个部分: 1. 读取Java字节码文件,将其解析成指令序列。 2. 实现一个虚拟机栈,用于存储局部变量和操作数栈。 3. 实现指令集,包括常量加载、算术运算、比较运算、跳转等指令。 4. 执行指令序列,模拟Java程序的执行过程。 在实现过程,我们需要注意一些细节问题,比如指令的操作数类型、栈帧的管理、异常处理等。此外,我们还需要考虑性能问题,比如如何优化指令的执行速度、如何减少内存占用等。 总之,实现一个Java虚拟机是一项非常复杂的任务,需要深入理解Java语言和计算机系统的原理。但是,通过这个练习,我们可以更好地理解Java程序的执行过程,提高我们的编程能力。 ### 回答2: Java黑皮书第1111.6主要探讨了Java的异常处理机制,以及如何自定义异常。本章节的核心知识点包括: 1. 异常的概念:异常是在程序执行期间发生的错误或其他意外情况,它打断了正常的程序执行流程。 2. 异常的分类:Java将异常分为Checked异常和Unchecked异常。Checked异常在编译期间就必须捕获处理,否则编译器会提示错误。Unchecked异常则不需要在编译期间捕获,但程序在运行时会抛出异常。 3. 异常处理机制:Java提供了try-catch语句用于捕获和处理异常。try块放置可能会抛出异常的代码,catch块处理异常的代码。 4. 自定义异常:Java允许我们自定义异常类,继承自Exception或RuntimeException,也可以添加自己的字段、方法等。 这一章节的课后题主要是通过代码实践来加深对异常处理机制的理解,以及练习自定义异常类。有一道比较经典的题目是编写一个自定义异常类,并在程序抛出这个异常。这个题目的思路可以参考以下步骤: 1. 创建一个自定义异常类,继承自Exception或RuntimeException。 2. 在构造方法传入异常信息,然后调用父类的构造方法。 3. 在程序的某个地方,使用throw关键字抛出自定义异常。 4. 在主程序使用try-catch语句捕获自定义异常,在catch块处理异常。 例如,我们可以创建一个自定义异常类MyException,并在程序的某个地方抛出这个异常: class MyException extends RuntimeException{ public MyException(String message){ super(message); } } public class Main{ public static void main(String[] args){ try{ throw new MyException("这是一个自定义异常"); }catch(MyException e){ System.out.println("捕获到自定义异常:" + e.getMessage()); } } } 在这个例子,我们创建了一个自定义异常类MyException,它继承自RuntimeException。在程序的try块,我们使用throw关键字抛出这个异常。在主程序,我们使用try-catch语句捕获这个自定义异常,并在catch块处理异常并输出异常信息。 总的来说,Java黑皮书第1111.6是一个非常重要的章节,掌握异常处理机制和自定义异常类的知识对于Java程序开发至关重要。在实际的开发,我们需要根据实际情况进行异常处理,使程序更加健壮和可靠。 ### 回答3: 11.6题是要求实现一个基于协程(Coroutine)的简单HTTP服务器。协程是一种比线程更轻量级的并发机制,可以在单个线程实现多个协程的交替执行,类似于CPU在操作系统的任务切换。HTTP服务器是指接受HTTP请求并返回HTTP响应的程序或服务。 在实现基于协程的HTTP服务器时,我们需要使用Java的协程库,比如Quasar,ByteBuddy或Kilim。在这个服务器,每个HTTP请求都被视为一个协程,并且服务器需要实现以下功能: 1. 监听并接受HTTP请求:服务器需要启动一个监听端口,以接受客户端的HTTP请求,并将其转变为协程来处理。 2. 解析HTTP请求:对于每个接受的HTTP请求,服务器需要解析其请求头和主体,以确定请求类型、请求路径、请求方法等信息。 3. 处理HTTP请求:服务器需要根据请求的类型和路径,决定如何处理每个HTTP请求。常见的处理方式是返回文件内容、执行代码、跳转到其它页面等。在协程处理HTTP请求时,服务器可以暂停当前协程,等待文件读取、代码执行等耗时操作完成后,再恢复当前协程继续执行。 4. 返回HTTP响应:服务器需要将处理结果封装成HTTP响应,包括响应头和响应主体内容,并将其发送回客户端。 在实现这个服务器时,需要注意以下几点: 1. Java协程库的选择:Java提供了不同的协程库,每个库有不同的优缺点。要根据实际需求选择适合的协程库,并掌握其基本使用方法。 2. HTTP请求的解析:需要熟悉HTTP协议的请求格式和规范,以正确解析每个请求,并提取需要的信息。 3. 耗时操作的处理:在处理HTTP请求时,可能会遇到需要,等待文件读取、代码执行等耗时操作。要注意在这些操作上暂停当前协程,并在操作完成后恢复协程的执行。 4. 程序的安全性:在实现HTTP服务器时,要注意相关的安全问题,比如防止跨站脚本(XSS)攻击、拒绝服务(DOS)攻击、SQL注入等。 总之,基于协程实现HTTP服务器是一项复杂的工作,需要综合掌握HTTP协议、Java协程库、耗时操作处理、程序安全等多个方面的知识。如果熟练掌握这些技能,就可以实现高效、安全、稳定的HTTP服务器,满足不同场景下的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值