Java笔记_this关键字_HomeWork(1 - 4 题)
第一题
/**
 * @ClassName HomeWork01
 * @Description TODO
 * @Author Orange
 * @Date 2021/4/23 8:14
 * @Version 1.0
 **/
//题目要求定义方法max,实现某个double数组的最大值,并返回!
public class HomeWork01 {
    public static void main(String[] args) {
        double arr[] = {23.4, 212.4, 223.1, 42, 23122.9};
        A01 a = new A01();
        System.out.println("\n最大值max = " + a.max(arr));
    }
}
class A01 {
    public double max(double [] arr) {
        System.out.println("===寻找数组中的最大值:===");
        double max = 0;
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] > max)
                max = arr[i];
            System.out.println(max);
        }
        return max;
    }
}
/*
程序运行结果:
------------------------
===寻找数组中的最大值:===
23.4
212.4
223.1
223.1
23122.9
最大值max = 23122.9
------------------------
*/
第一题改进:
/**
 * @ClassName HomeWork01_1
 * @Description TODO
 * @Author Orange
 * @Date 2021/4/23 9:42
 * @Version 1.0
 **/
//题目要求定义方法max,实现某个double数组的最大值,并返回!
public class HomeWork01_1 {
    public static void main(String[] args) {
        //疑问点:要是数组是空数组怎么办?数组的值为null怎么办?
        double arr[] = {};//12.3, 242, 1.99, 234.08,1940.65
        A03 a = new A03();
        Double res = a.max(arr);
        if(res != null) {                       //改进点1:考虑数组值可能为null时的处理
            System.out.println("\n最大值max = " + res);
        }else {
            System.out.println("输入的数组有误!");
        }
    }
}
class A03 {
    public Double max(double [] arr) {
        System.out.println("===寻找数组中的最大值:===");
        if(arr != null && arr.length > 0) {        //改进点2:避免了输入的数组值为null和
                                                   //数组为空的情况下程序报错的情况
            double max = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] > max)
                    max = arr[i];
                System.out.println(max);
            }
            return max;
        }else {
            return null;
        }
    }
}
/*
程序运行结果:
------------------------
===寻找数组中的最大值:===
输入的数组有误!
------------------------
*/
第二题
/**
 * @ClassName HomeWork02
 * @Description TODO
 * @Author Orange
 * @Date 2021/4/23 8:32
 * @Version 1.0
 **/
// 编写类A02,定义方法find,实现查找某字符串是否在字符串数组中,
// 并返回索引,如果找不到返回-1!
public class HomeWork02 {
    public static void main(String[] args) {
        String arr[] = {"峰哥牛逼!", "青哥牛逼!", "还是峰哥牛逼!"};
        String str = "还是峰哥牛逼!";
        A02 a = new A02();
        System.out.println("输入字符串:" + str + " 返回值:" + a.find(str, arr));
    }
}
class A02 {
    public int find (String str, String str_arr []) {
        int i = 0;
        for(; i < str_arr.length; i++) {
            if(str.equals(str_arr[i]))
                break;
        }
        if(str.equals(str_arr[i])) {
            return i;
        }else {
            return -1;
        }
    }
}
/*
程序运行结果:
--------------------------------
输入字符串:还是峰哥牛逼! 返回值:2
--------------------------------
*/
第三题
/**
 * @ClassName HomeWork03
 * @Description TODO
 * @Author Orange
 * @Date 2021/4/23 9:06
 * @Version 1.0
 **/
// 类描述:
// 编写类Book,定义方法updatePrice,实现更改某本书的价格,
// 具体:如果价格 > 150,则更改为150,如果价格 > 100,更改为100,否则不变
import java.util.Scanner;
public class HomeWork03 {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println("请输入此书的价格:");
        double book_price = myScanner.nextDouble();
        Book a = new Book();
        System.out.println("更新后的价格为:" + a.updatePrice(book_price));
    }
}
class Book {
    public double updatePrice (double price) {
        double new_price;
        if(price > 150) {
            new_price = 150;
        }else if(price > 100) {
            new_price = 100;
        }else {
            new_price = price;
        }
        return new_price;
    }
}
/*
程序运行结果:
--------------------------------
请输入此书的价格:
199
更新后的价格为:150.0
--------------------------------
*/
第四题
/**
 * @ClassName This_Homework04
 * @Description TODO
 * @Author Orange
 * @Date 2021/4/24 18:35
 * @Version 1.0
 **/
/*
编写类A04实现数组的复制功能copyArr,输入旧数组,返回一个新数组,
元素和旧数组一样
Write class A04 to implement the array copy function copyArr,
enter the old array, and return a new array with the same
elements as the old array.
*/
public class HomeWork04 {
    public static void main(String[] args) {
        int arr[] = {1,5,3,2,6,7,8,3,23};       //初始化外部数组
        A04 a = new A04(arr.length);            //创建类A04对象a
        a.copyArr(arr);                         //调用对象a 复制数组方法copyArr
        a.info();                               //调用对象a 显示数组方法info
    }
}
class A04 {
    int arr[] = null;                           //声明一个int[]类型的arr引用变量,
                                                //变量会占用一块内存空间,它没有分配初始值。
    public A04(int length) {                    //构造器,设置数组arr的长度
        arr= new int[length];
    }
    public void copyArr (int arr[]) {
        for(int i = 0; i < arr.length; i++) {   //将外部数组元素依次赋给对象a的数组元素
            this.arr[i] = arr[i];
        }
        //return this.arr;
    }
    public void info() {
        System.out.println("===对象数组输出===");
        for(int i = 0; i < this.arr.length; i++) {      //输出对象数组
            System.out.print(this.arr[i] + "\t");
        }
    }
}
/*
Program running results:
------------------------------------
===对象数组输出===
1	5	3	2	6	7	8	3	23
------------------------------------
*/
												
											Java笔记_this关键字_HomeWork(1 - 4 题)的更多相关文章
- Java笔记 —— this 关键字
		
Java笔记 -- this 关键字 h2{ color: #4ABCDE; } a{ color: blue; text-decoration: none; } a:hover{ color: re ...
 - Java笔记:关键字
		
关键字 描述 abstract 抽象方法,抽象类的修饰符 assert 断言条件是否满足 boolean 布尔数据类型 break 跳出循环或者label代码段 byte 8-bit 有符号数据类型 ...
 - JAVA笔记4__static关键字/对象数组/foreach/方法的可变参数
		
/** * static关键字:修饰属性(实质就是全局变量).方法(无需本类的对象即可调用此方法).类. * 1.static方法只能调用static方法 * 2.static方法只能访问static ...
 - JAVA笔记 -- this关键字
		
this关键字 一. 基本作用 在当前方法内部,获得当前对象的引用.在引用中,调用方法不必使用this.method()这样的形式来说明,因为编译器会自动的添加. 必要情况: 为了将对象本身返回 ja ...
 - JAVA笔记4-static关键字
		
1.static方法中不能使用this关键字 2.例题:static成员变量用于计数
 - JAVA笔记11-Final关键字
		
相当于C++中的const (1)final的变量值(成员变量.局部变量(形参))不可被改变: (2)final的方法不能被重写: (3)final的类不能被继承.
 - JAVA笔记3-this关键字
		
1. 2.例题
 - Java复习笔记--java中this 关键字
		
Java中this关键字,this可以调用类的成员变量和成员方法,this还可以调用类中的构造方法.使用这种方式值得注意的是, 只可以在无参构造方法中的第一句使用this关键字调用有参构造方法. pu ...
 - Thinking in Java 笔记
		
大二就买了这本书,如今再看这本书,看到了一些以前没看的细节,也有了不同的体会.本文使用第4版,整理每章的笔记心得.老外的书有个特点,他会花费大量的文字去阐述一个概念,这比堆代码强多了. 第 1 章 对 ...
 - TIJ读书笔记05-this关键字
		
TIJ读书笔记05-this关键字 概述 this的用法 static方法 概述 两个对象同时调用一个方法,那么jvm怎么知道是哪个方法调用的呢. 我们在书写的时候会写成a.fun(1) 或者b.fu ...
 
随机推荐
- 五、pycharm的安装与基本使用
			
目录 一.pycharm的安装 1.软件介绍 2.正版安装 1.下载软件 2.安装软件 3.其他方法安装(需要先下载相关资源) ①无限试用法 ②傻瓜式激活法 ③淘宝购买 二.pycharm软件的使用 ...
 - 随便封装下log
			
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = logging工具类 __Time__ = 2 ...
 - 【CodeSmith】The System.Data.SQLite library is not installed on this computer,不能使用SQLite解决办法
			
1.出现问题原因 1)System.Data.SQLite 尚未安装在您的计算机上 2)System.Data.SQLite 尚未正确配置 2.下载并安装System.Data.Sqlite [注意] ...
 - C++练习3 定义带默认值的参数
			
通过void func 定义函数的默认值和其可以容纳多少个实参 1 #include <iostream> 2 using namespace std; 3 void func(int a ...
 - Tesseract图片文字识别
			
如何进行图文识别? 百度api收费的,自己训练模型集费时费力,有没有训练好的库,我们拿过来直接用的呢? 有,那就是tesseract. 安装 pipenv install pytesseract pi ...
 - ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP
			
1.文档说明 本篇文档将通过举例,解析字符的比较运算符之间的用法和区别,涉及到的操作符:CO|CN|CA|NA|CS|NS|CP|NP 2.用法和区别 用法总览 以下举例,几乎都使用一个字符变量和一个 ...
 - Prometheus插件安装(NodeExporter)
			
Prometheus插件安装(NodeExporter) 一,下载安装包并解压 下载地址:https://github.com/prometheus/node_exporter/releases 同样 ...
 - Canvas:绘制文本
			
基础 画布除了绘制图形以外还可以绘制文本,画布中的文本可以设置字体大小.字体格式.对齐方式(横向和纵向对齐方式),并且还可以制作很炫酷的文本,比如渐变文字. 文本有以下三个属性,控制文本的字体大小.字 ...
 - mysql数据库总是锁表
			
有可能是数据库服务器的磁盘空间满了
 - Vscode报错: error:0308010C:digital envelope routines::unsupported错误记录解决
			
Vscode报错: error:0308010C:digital envelope routines::unsupported错误记录解决 因为安装了新版本的node才报的错误:node版本: v18 ...