包与字符串

包是分类管理的需要,建立包用:package,包中类的引用import

学习使用javaAPI中的字符串类String,学会其成员方法的使用


 (必看)eclipse包的分层等级结构设置

因为eclipse的包的结构默认是平行等级的,所以要手动设置成分层等级,操作步骤如下:

完成下图设置后就可以在父包中建立子包了,但要注意一点,只有一个子包时,要在父包中先创建一个.java文件(即class类或者interface接口,如下图biology和school两个父包中,都有一个Main.java文件,否则创建的子包仍然会是平行结构!~也不太准确,反正自行摸索一下吧)

 

 

 


第1题. 

在biology包中的animal包中有human类,它具有name,height,weight的属性,还具有eat(),sleep()和work()的行为,在biology包中的plant包中有flower类,它具有name,color,smell的属性,还具有drink()和blossom()的行为.

现在在一个school包中的garden包中一个张三的人,他是一个human类的对象,种植的rose是一个flower类对象,编程实现并测试各自的方法.

项目结构

首先根据题意我们可以搭建出如下图所示的项目结构,但用eclipse的小白童鞋一定会遇到这样一个问题,就是无法在包中再建一个包,在开头已经放好教学了。

剩下写代码就简单呐,结合注释就明白了:

要注意的是,package导包语句是必须写在所有代码之前的,这是Java的规定!

human类代码

package biology.animal;public class human {//成员变量private String name;private int height, weight;//成员方法public void eat() {System.out.println(this.name + ":我吃吃吃!");}public void sleep() {System.out.println(this.name + ":我睡睡睡!");}public void work() {System.out.println(this.name + ":我卷卷卷!");}//构造方法public human() {//无参构造System.out.println("human类的的无参构造被调用");}public human(String name, int height, int weight){//有参构造this.name = name;this.height = height;this.weight = weight;}//getter和setter就不全写了,很简单的,而且跟题目关系不大,反正用有参构造就可以解决对象的初始化public String getName() {return this.name;}//toString方法public String toString() {return "注意看,这个男人叫" + this.name + ",他的身高是" + this.height + "cm,他的体重是" + this.weight + "kg。";}
}

flower类代码 

package biology.plant;public class flower {private String name, color, smell;//名字、颜色、气味应该都设置成String类型吧public void drink() {System.out.println("给" + this.name + "浇点水吧。");}public void blossom() {System.out.println(this.name + "开个发发(花花)!");}public flower(){System.out.println("flower类的无参构造被调用");}public flower(String name, String color, String smell) {this.name = name;this.color = color;this.smell = smell;}//这里我们写一下getter和setter,和human对象分开测试两种初始化类型public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public String getSmell() {return smell;}public void setSmell(String smell) {this.smell = smell;}}

测试类代码 

package school.garden;
//导入biology父包中两个子包(animal子包和plant子包)的两个类
import biology.animal.human;
import biology.plant.flower;public class zhangsan {public static void main(String[] args) {//对human类采用有参构造的形式来实例化对象并赋值human h = new human("张三", 180, 70);//对flower类采用无参构造方法来实例化对象,采用setter方法进行赋值flower f = new flower();f.setName("琉璃百合");f.setColor("淡蓝色");f.setSmell("小清新");System.out.println(h.toString());System.out.println("这是" + h.getName() + "培养的" + f.getName() + ",它的颜色是" + f.getColor() + "的,它的气味是" + f.getSmell() + "。");//测试human类和flower类里面的共五个方法,因为是跨包定义的类,因此这五个方法必须是public权限h.eat();h.sleep();h.work();f.drink();f.blossom();}
}


第2题.

在computer包中的mainbroad包中有一个VGACard的类,它有一个显示方法show(),显示”VGA checked success”,在server的包的mainbroad包中的showCard类是继承自VGACard,请测试showCard的show()功能。

这一题比上一题简单很多,首先还是先把项目的结构弄好(在第一题中有解释)

项目结构

VGACard类代码

package computer.mainbroad;public class VGACard {public void show() {System.out.println("VGA checked success");}
}

showCard类(兼测试类)代码

package server.mainbroad;
import computer.mainbroad.VGACard;public class showCard extends VGACard{public static void main(String[] args) {showCard sc = new showCard();sc.show();}
}

 


第3题.

在com.graphic包中定义一个圆柱体类Cylinder,其半径r,高h都为私有属性,有构造方法和求体级方法volume()。在com.test包中定义一个测试类test,测试一个半径为5.34、高为2的圆柱体体积。半径PI为3.14

项目结构 

Cylinder类代码 

package com.graphic;public class Cylinder {private double r, h;public Cylinder() {}public Cylinder(double r, double h) {this.r = r;this.h = h;}public double volume() {return 3.14*this.r*this.r*this.h;}
}

 test类(即测试类)代码

package com.test;
import com.graphic.Cylinder;
public class test {public static void main(String[] args) {Cylinder c = new Cylinder(5.34, 2);double v = c.volume();System.out.println(v);}}

 


第4题.

编写程序统计一个字符子串在一个字符串中出现的次数和位置。如子字符串“nba”在字符串”asfasfnabaasdfnbasdnbasnbasdnbadfasdf”中出现的次数和出现的位置。

indexOf()方法查找字串

要解决这题首先得学会用indexOf()方法查找字串;

代码格式:

Str.indexOf(str,start)

其中,Str是母串(String),str是待查找子串(String),start表示从母串的哪个下标(int)开始查找。

  1. 如果母串中存在这个字串,将返回该字串首字符在母串中的下标。
  2. 如果母串中不存在这个字串,将返回-1

 下面举一个样例进行理解:

思路

所以,本题的思路就是用indexOf()方法从下标0开始查找字串,找到一个字串后得到它的下标,借此再用indexOf()从此下标加上待查找子串长度的位置,继续往后查找,直到找不到字串,该方法返回-1。

完整代码 

public class Main {public static void main(String[] args) {String Str = "asfasfnabaasdfnbasdnbasnbasdnbadfasdf";String str = "nba";int index = 0, count = 0;//index用来记录子串出现的位置,count用来记录字串出现次数while((index = Str.indexOf(str, index)) != -1) {//不等于-1,就继续往下找count++;System.out.println("第" + count + "次,在下标为" + index + "处,找到了一个目标字串!");index += str.length();//更新index的值,让indexOf()方法继续往后查找子串}System.out.println("统计结果:" + str + "在" + Str + "中" + "共出现了" + count +"次");}
}

 


第5题.

对字符串“23 10 -8 0 3 7 108”中的数值进行升序排序,生成一个数值有序的字符串 “-8 0 3 7 10 23 208”。

思路

对于字符串而言,没有什么库函数可以实现直接对其内部的字符按照指定规则排序。因此我们采取这样的解决办法:

①将给定字符串,按空格分隔得到多个子串组成的字符串数组。

②将字符串数组中的子串转化为整型,并存放在一个整型数组中。

③对这个整型数组按升序排序。

④将整型数组中的整数重组成字符串,数与数之间用空格分隔。

完整代码

结合注释理解。

import java.util.Arrays;
import java.util.Iterator;public class Main {public static void main(String[] args) {String Str = "23 10 -8 0 3 7 108";String[] Str_nums = Str.split(" ");//将Str中的字串按空格分隔,并存放在字符串数组中int[] nums = strs_to_ints(Str_nums);//将字符串数组转为整型数组Arrays.sort(nums);//Arrays.sort()方法默认按升序对整型数组nums排序String Str_new = toString(nums);//将整型数组转为字符串System.out.println(Str_new);}static int[] strs_to_ints(String[] Str_nums) {int len = Str_nums.length;int[] nums = new int[len];for(int i = 0; i < len; i++) {nums[i] = Integer.parseInt(Str_nums[i]);//用Integer.parseInt()方法可以之间将数字字符串转为对应的整数}return nums;}static String toString(int[] nums) {StringBuilder Str_new = new StringBuilder();//String类对象一旦定义就无法修改,因此必须采用StringBuilder类对象for(int i = 0; i < nums.length; i++) {//用.append()方法将整数(以字符的形式)或字符尾插到Str_new对象中,实现字符串的拼接if(i == nums.length - 1) {//最后一个数字后面没有空格,因此特殊处理Str_new.append(nums[i]);}else {Str_new.append(nums[i] + " ");}}return Str_new.toString();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS Enterprise on Kubernetes 11.1安装示例

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 安装前置条件基本安装解压文件生成秘钥执行安装脚本 配置DNS方法一方法…

【Linux 进度条小程序】缓冲区+回车换行

文章目录 回车与换行缓冲区举个栗子fflush函数倒计时小程序进度条小程序 回车与换行 回车和换行是不同的两个概念 回车&#xff1a;\r 使光标回到本行行首。 换行&#xff1a;\n使光标下移一格。 一般我们的键盘上的Enter键是回加换行键 在c语言中 \n 表示回车换行 效果和Ent…

代码随想Day24 | 回溯法模板、77. 组合

理论基础 回溯法和递归不可分割&#xff0c;回溯法是一种穷举的方法&#xff0c;通常需要剪枝来降低复杂度。回溯法有一个选择并退回的过程&#xff0c;可以抽象为树结构&#xff0c;回溯法的模板如下&#xff1a; void backtracking(参数) {if (终止条件) {存放结果;return;}…

Java动态代理实现与原理详细分析

Java动态代理实现与原理详细分析 关于Java中的动态代理&#xff0c;我们首先需要了解的是一种常用的设计模式–代理模式&#xff0c;而对于代理&#xff0c;根据创建代理类的 时间点&#xff0c;又可以分为静态代理和动态代理。 1、代理模式 代理模式是常用的java设计模式&…

从cot到agent的survey视频笔记

参考视频&#xff1a; 从CoT到Agent的列车即将发车&#xff0c;请各位旅客尽快上车 姚杳 由于总结不易&#xff0c;所以暂时都是粉丝可见&#xff0c;如果总结的不好见谅。 核心理解点总结&#xff1a; paradigm shifts of cot when cot&#xff1f;推理多的任务时 how cot…

是否曾经想过关闭Microsoft账户,那么你来对地方了

本文介绍如何使用web浏览器删除Microsoft账户。 如果你删除Microsoft帐户&#xff0c;你将无法访问所有Microsoft应用程序和服务&#xff0c;包括Xbox网络。 如何永久删除Microsoft帐户 完全关闭你的Microsoft帐户的唯一方法是访问Microsoft网站。在开始之前&#xff0c;你应…

ssh远程连接服务器

目录 一、远程连接服务器简介 1、什么是远程连接服务器 2、远程连接服务器的功能 3、远程连接服务器的类型&#xff08;以登录的连接界面来分类&#xff09; 4、文字接口连接服务器 二、连接加密技术简介 安全套接层&#xff1a; 1、版本协商阶段 2、密钥和算法协商阶…

初识MQ——消息队列技术选型

文章目录 同步和异步通讯同步通讯异步通讯 技术对比 同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c…

解决vue3使用iconpark控制台预警提示问题

前言 最近在项目中使用 iconpark-icon 来管理图标&#xff0c;一切都很顺利&#xff0c;引入链接后&#xff0c;图标正常显示&#xff0c;没有报错。但是控制台却发出了预警信息。 [Vue warn]: Failed to resolve component: iconpark-icon If this is a native custom eleme…

redis------在java中操作redis

Redis&#xff08;非关系型数据库&#xff09;简介 redis下载 点击即可进入redis中文网进行下载 百度网盘windows版本 提取码 DMH6 redis主要特点 基于内存存储&#xff0c;读写性能高 适合存储热点数据&#xff08;热点商品、资讯、新闻&#xff09; 企业应用广泛 redis不同…

JAVA IO:NIO

1.阻塞 IO 模型 ​ 最传统的一种 IO 模型&#xff0c;即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后&#xff0c;内核会去查看数据是否就绪&#xff0c;如果没有就绪就会等待数据就绪&#xff0c;而用户线程就会处于阻塞状态&#xff0c;用户线程交出 CPU。当…

你敢信!贪吃蛇游戏居然能插入到富文本编辑器里!

所有的大人都曾经是小孩子&#xff0c;虽然&#xff0c;只有少数的人记得。 ——《小王子》 引言 突然想起来前段时间看过的对半同学写的贪吃蛇游戏&#xff0c;据说对半同学只花了一个小时就写出来了。 《canvas 300行代码实现一个贪吃蛇 》 当时我正躺在床上刷手机&#x…

数据结构——链式二叉树

前言&#xff1a;哈喽小伙伴们&#xff0c;上篇文章我们讲述了一个特殊的二叉树——使用数组实现的堆的基本知识之后呢&#xff0c;从这篇文章开始&#xff0c;我们就正式进入普通二叉树的介绍啦&#xff0c;二叉树真正的难点——递归&#xff0c;即将来临&#xff0c;小伙伴们…

unity旋转选中效果

代码和预制体 函数PlayAnim&#xff08;&#xff09;中的角度要根据按钮数量手动填好 using System; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; using UnityEngine;// Token: 0x0200001B RID: 27 public class BtnParentScript : Base…

QT5.4.1无法打开文件

问题描述&#xff1a;起初是在QT代码中运行打开文件代码&#xff1a; QString gFilename QFileDialog::getOpenFileName(this,"open File",path,"*", nullptr,QFileDialog::DontUseNativeDialog);时&#xff0c;出现了堵塞情况&#xff0c;经过多次实验一…

海鹰数据虾皮:为Shopee卖家提供的完美数据分析工具

在如今的电子商务领域中&#xff0c;如何更好地了解市场动态、优化商品策略以提高运营效果成为了卖家们关注的重要问题。而海鹰数据&#xff08;Haiying Data&#xff09;作为一款专为Shopee平台设计的数据分析工具&#xff0c;为卖家们提供了市场趋势、商品分析、关键词优化、…

改善男性生理健康,缓解前列腺问题

前列腺是男性生殖系统中非常重要的一部分&#xff0c;它对男性的生理健康都着至关重要的作用。但是随着年龄的增长&#xff0c;前列腺问题也越来越普遍&#xff0c;给男性带来了很大的困扰。前列宝是Mission Hill推出的一款番茄红素多效复合胶囊&#xff0c;主要针对男性前列腺…

11 款顶级的免费 iPhone 数据恢复软件

iPhone 拥有巨大的存储容量。您可以在 iPhone 设备上存储图像、文档和视频等数据。有时&#xff0c;您的 iPhone 会发生许多意外事件&#xff0c;例如意外删除&#xff0c;从而导致数据丢失。这里有 11 个最好的免费 iPhone 数据恢复软件&#xff0c;您可以免费下载&#xff0c…

喜报!MIAOYUN入选成都高新区“瞪羚企业”

近日&#xff0c;成都高新区科技创新局公示了《2022年领先科技园区政策拟支持企业&#xff08;机构&#xff09;名单&#xff08;第二批次&#xff09;》&#xff0c;即最新一批的高新区“瞪羚企业”名单。成都元来云志科技有限公司&#xff08;简称“MIAOYUN”&#xff09;以其…

JVM 类加载机制(七)

1.加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化 ​ JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&#xff0c;下面我们就分别来看一下这五个过程。 1.1. 加载 ​ 加载是类加…