5、利用接口实现动态的创建对象[选做题] • 5.1 创建4个类: • 苹果 • 香蕉 • 葡萄 • 园丁 • 5.2 在三种水果的构造方法中打印一句话. • 以苹果类为例 • class apple • { • public apple() • { • System.out.println(―创建了一个苹果类的对象‖); } • } 课后作业 • 类图如下: • 5.3 要求从控制台输入一个字符串,根据字符串的 值来判断创建三种水果中哪个类的对象
package homework;
public interface fruit{
class apple implements fruit {
public apple() {
System.out.println("创建了一个苹果类对象");
}
}
class oranges implements fruit{
public oranges() {
System.out.println("创建了一个葡萄类的对象");
}
}
class pear implements fruit{
public pear() {
System.out.println("创建了一个香蕉类的对象");
}
}
}package homework;
import java.util.Scanner;
import homework.fruit.apple;
import homework.fruit.oranges;
import homework.fruit.pear;
public class gardener {
public static void main(String[] args) {
// TODO Auto-generated method stub
gardener g=new gardener();
g.create();
}
public fruit create() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入水果名称");
String name=sc.next();
fruit f=null;
if(name.equals("苹果")) {
f=new apple();
}else if(name.equals("香蕉")) {
f=new pear();
}else if(name.equals("葡萄")) {
f=new oranges();
}
return f;
}
}
1.输入6位密码,再次输入密码,如果不够6位,提示,位数不对,如果两次不一致,提示两次密码不一致。
length()
equals()
package homework;
import java.util.Scanner;
public class dd {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的密码");
String pass1=sc.next();
System.out.println("请再次输入密码");
String pass2=sc.next();
if(pass1.length()>0&&pass1.length()<6) {
System.out.println("位数不足");
}else if(!pass1.equals(pass2)) {
System.out.println("两次密码不一致");
}
}
}
2.输入一个字符串,判断里面数字、大写字母、小写字母,其他字符的个数
toCharArray();
package homework;
import java.util.Scanner;
public class dd {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入一段字符串");
String gd=sc.next();
int dax=0;
int xiaox=0;
int qita=0;
for (int i = 0; i < gd.length(); i++) {
char c=gd.charAt(i);
if(Character.isUpperCase(c)){
dax++;
}else if(Character.isLowerCase(c)){
xiaox++;
}
}
qita=gd.length()-dax-xiaox;
System.out.println("字符串中大写的字母数为:"+dax+"\n小写的字母数为:"+xiaox+"\n其他字符数为:"+qita);
}
}
3.输入一个字符串,如果开头是ok并且包含no,那么输入错误。
startwith, contain
package homework;
import java.util.Scanner;
public class dd {
static Scanner sc=new Scanner(System.in);
public static void shuru() {
System.out.println("请输入一段字符");
String string = sc.next();
if(string.startsWith("ok")&&string.contains("no")) {
System.out.println("输入错误");
}else {
System.out.println("输入正确");
}
System.out.println("是否重新输入?Y/N");
if(sc.next().equalsIgnoreCase("y")) {
panduan();
}else {
System.out.println("谢谢使用");
}
}
public static void panduan(){
shuru();
}
public static void main(String[] args) {
shuru();
}
}
4.输入三个单词,组合成pascal命名法的字符串。(选做)
输入:
STU
manage
system
输出
StuManageSystem
可以考虑:charAt ,touppercase,tolowercase,等等。字符串连接+ concat
package homework;
import java.util.Scanner;
public class dd {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一段字符串");
String s1=sc.next();
String string0=s1.substring(0, 1);
String string1=s1.substring(1,3).toLowerCase();
System.out.println("请输入第二段字符串");
String s2=sc.next();
String string2=s2.substring(0, 1).toUpperCase();
String string3=s2.substring(1, 6);
System.out.println("请输入第三段字符串");
String s3=sc.next();
String string4=s3.substring(0, 1).toUpperCase();
String string5=s3.substring(1, 6);
System.out.println(string0+string1+string2+string3+string4+string5);
}
}