精华内容
下载资源
问答
  • 10、设计一个类Student,该类包括姓名、学号和成绩。设计一个方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息 算法分析: 1、定义一个类,包含私有属性 姓名 学号 成绩 2、实现构造函数和get()/set() 方法 3...

    题目:
    10、设计一个类Student,该类包括姓名、学号和成绩。设计一个方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息
    算法分析:
    1、定义一个类,包含私有属性 姓名 学号 成绩
    2、实现构造函数和get()/set() 方法
    3、定义一个排序方法sortStudent()
    4、定义一个打印方法,在程序入口直接打印的话,不好实现
    5、定义数组,存入数据,调用方法实现所有功能
    代码实现:

    package Java_Object_oriented.Student;
    
    import java.util.Scanner;
    
    /*10、设计一个类Student,该类包括姓名、学号和成绩。设计一个方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息*/
    class Student {
        private String name;
        private int id;
        private int score;
    
        public Student() {
        }
        public Student(String name, int id, int score) {
            this.name = name;
            this.id = id;
            this.score = score;
        }
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public int getScore() {
            return score;
        }
        public void setScore(int score) {
            this.score = score;
        }
        
        //排序 一般的排序格式都是这样
        public static void sortStudent(Student[] s) {
            for (int i = 0; i < s.length - 1; i++) {
                for (int j = 0; j < s.length - 1 - i; j++) {
                    if (s[j].score < s[j + 1].score) {
                        Student temp = s[j];
                        s[j] = s[j + 1];
                        s[j + 1] = temp;
                    }
                }
            }
        }
    	//打印信息
        public void show() {
            System.out.println(name + " " + id + " " + score);
        }
    }
    
    public class StudentDemo {
        public static void main(String[] args) {
            Student[] s = new Student[3];
            s[0] = new Student("zc", 01, 99);
            s[1] = new Student("yf", 02, 88);
            s[2] = new Student("son", 03, 100);
    
            Student.sortStudent(s); //调用排序
    //        Student.sortStudent();Student.sortStudent[s];能写成这样,也是人才。
    
            for (int i = 0; i < s.length; i++) {//这段代码有问题
    //            System.out.println(name + " " + id + " " + score);私有属性,不能直接访问
    //            System.out.println(s.setName("zc")+ " " + id + " " + score);
    
            }
            //增强for循环 调用show()方法
            for (Student S : s) {
                S.show();
            }
        }
    }
    
    

    运行结果:
    在这里插入图片描述
    学习心得:
    1、一般的排序格式都是用两个for循环实现的,比较常用。i是从0开始的,所以后面会有-1操作。
    2、给动态数组中存入元素的格式也需要注意,定义的什么类型,就存入什么类型的数据。
    3、在最后,对get/set方法的使用,出现了问题,下去了恶补一下。
    在这里插入图片描述

    展开全文
  • * 扫描一个类所在目录下的所有类的类名 * * @param clazz 要扫描的基础类 * @param filter 过滤器 为空的时候不过滤 * @return 一个全路径类名的List */ public static List<String> scanAllClass...
    /**
         * 扫描一个类所在目录下的所有类的类名
         *
         * @param clazz  要扫描的基础类
         * @param filter 过滤器 为空的时候不过滤
         * @return 一个全路径类名的List
         */
         public static List<String> scanAllClass(Class clazz, int back, Function<String, Boolean> filter) {
            List<String> classes = new LinkedList<>();
            try {
                URL url = clazz.getResource("");
                StringBuilder sb = new StringBuilder(URLDecoder.decode(url.getPath(), "UTF-8"));
                //取父目录 0 或者null的时候是本级不用变  但是1的时候要+1 是因为要把最后一个/也去掉
                int level = back == 0 ? 0 : 1 + back;
                for (int i = 0; i < level; i++) {
                    int index = sb.lastIndexOf("/");
                    sb = sb.delete(index, sb.length());
                }
                //补回最后一个/
                if (level > 0) {
                    sb.append("/");
                }
                String decode = sb.toString();
                System.out.println(decode);
                //判断是jar包还是文件夹
                String[] split = decode.split("\\.jar!/");
    
                if (split.length > 1) {
    
                    //打开jar文件
                    JarURLConnection connection = (JarURLConnection) url.openConnection();
                    JarFile jarFile = connection.getJarFile();
                    Enumeration<JarEntry> jarEntries = jarFile.entries();
                    //遍历jar包下的所有文件
                    while (jarEntries.hasMoreElements()) {
                        JarEntry jarEntry = jarEntries.nextElement();
                        String jarEntryName = jarEntry.getName();
    
                        //查找出类
                        if (jarEntryName.startsWith(split[split.length - 1]) && jarEntryName.endsWith(".class")) {
                            String className = jarEntryName.replace("/", ".");
                            //执行过滤器
                            if (filter != null && !filter.apply(className)) {
                                continue;
                            }
                            classes.add(className.replaceAll(".class$", ""));
                        }
                    }
                } else {
                    //todo mac 下测试效果
                    //计算出从包名开始往下的路径
                    //linux 下和windows下有所区别  windows下的decode 前面会加上一个 / 所以分隔符是\的时候 subNum要+1
                    String separator = System.getProperty("file.separator");
                    int subNum = "\\".equals(separator) ? 2 : 1;
                    int bathLength = decode.length() - subNum - clazz.getPackage().getName().length();
    
                    //BFS
                    Queue<File> queue = new LinkedList<>();
                    File file = new File(decode);
                    queue.add(file);
                    while (!queue.isEmpty()) {
                        for (int i = 0; i < queue.size(); i++) {
                            File poll = queue.poll();
                            String absolutePath = poll.getCanonicalPath();
                            if (absolutePath.endsWith(".class")) {
                                String substring = absolutePath.substring(bathLength);
                                String className = substring.replace(separator, ".");
                                //执行过滤器
                                if (filter != null && !filter.apply(className)) {
                                    continue;
                                }
                                //将分割符切换成.
                                classes.add(className.replaceAll(".class$", ""));
                            } else {
                                if (poll.canRead() && poll.isDirectory()) {
                                    File[] files = poll.listFiles();
                                    //如果有子文件 入队
                                    for (File f : files) {
                                        queue.add(f);
                                    }
                                }
                            }
                        }
    
                    }
                }
            } catch (Exception e) {
    
                throw new RuntimeException(e);
            }
            return classes;
        }
    
    
        public static void main(String[] args) {
    
            System.out.println(scanAllClass(DataMemoryApplication.class, null));
    
            System.out.println(scanAllClass(org.springframework.cache.Cache.class, null));
            //过滤内部类
            System.out.println(scanAllClass(org.springframework.cache.Cache.class, s -> !s.contains("$")));
        }

     

    展开全文
  • 设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高。width和height的默认值都为1.该类包括矩形类的无参构造函数(默认构造函数);一个width和height为指定值...

    设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高。width和height的默认值都为1.该类包括矩形类的无参构造函数(默认构造函数);一个width和height为指定值的矩形构造函数;一个名为getArea()的函数返回矩形的面积;一个名为getPerimeter()的函数返回矩形的周长。请实现这个类。编写一个测试程序,创建一个Rectangle对象,从键盘输入矩形的宽和高,然后输出矩形的面积和周长。
    这个应该是很基础的题,考察点主要就是重载函数的运用,以及虚构函数的运用,,还有就是声名对象时要写清楚是声明的那个重载函数,即初始值。
    代码如下:

    #include <iostream>
    using namespace std;
    class Rectangle
    {
    	private:
    		double width;//宽
    		double height;//高
    	public:
    		Rectangle()//无参构造函数
    		{
    			width=1;
    			height=1;
    		}
    		Rectangle(double x,double y)//有参构造函数
    		{
    			width=x;
    			height=y;
    		}
    		double getArea()//得到面积
    		{
    			double area;
    			area=width*height;
    			cout<<"面积为:"<<area<<endl;
    			return area;
    		}
    		double getPerimeter()//得到周长
    		{
    			double perimeter;
    			perimeter=2*(width+height);
    			cout<<"周长为:"<<perimeter<<endl;
    			return perimeter;
    		}
    
    };
    	
    int main()
    {
    	double x,y;
    	cout<<"请输入宽和高:"<<endl;
    	cin>>x>>y;
    	Rectangle r1(x,y);//这里声名对象时一定要选择好是默认参数还是自己定义的参数,这里是有参的声明
    	r1.getArea();
    	r1.getPerimeter();
    	Rectangle r2;//无参的声明
    	r2.getArea();
    	r2.getPerimeter();
    	return 0;
    }
    

    可能有的地方表达不太清楚,大家只要能看懂代码理解即可。

    展开全文
  • 设计一个名为triangle的类来扩展geometricobject类,该类包括 三个名为side1,side2,side3的double数据域表示这个三角形的三条边 一个无参构造方法创建默认三角形 一个能创建带指定size的三角形构造方法 所有三个...

    设计一个名为triangle的类来扩展geometricobject类,该类包括

    • 三个名为side1,side2,side3的double数据域表示这个三角形的三条边
    • 一个无参构造方法创建默认三角形
    • 一个能创建带指定size的三角形构造方法
    • 所有三个数据域的访问器
    • 是否填充
    • 面积,周长,颜色
      GeometricObject类如下:
      abstract class GeometricObject{
      
      	private boolean filled;
      	private String color;
      	private java.util.Date dateCreated;
      
      	protected GeometricObject() {
      		this(false,"white");
      		dateCreated = new java.util.Date();
      	}
      
      	protected GeometricObject(boolean filled, String color) {
      		//super();
      		this.filled = filled;
      		this.color = color;
      		dateCreated = new java.util.Date();
      	}
      
      	public boolean isFilled() {
      		return filled;
      	}
      
      	public void setFilled(boolean filled) {
      		this.filled = filled;
      	}
      
      	public String getColor() {
      		return color;
      	}
      
      	public void setColor(String color) {
      		this.color = color;
      	}
      
      	public java.util.Date getDateCreated() {
      		return dateCreated;
      	}
      
      	public void setDateCreated(java.util.Date dateCreated) {
      		this.dateCreated = dateCreated;
      	}
      
      	@Override
      	public String toString() {
      		return "created on"+dateCreated+"\ncolor"+color+"and filled:"+filled;
      	}
      
      	public abstract double getArea();
      
      	public abstract double getPerimater();
      }
      

      Triangle类如下:

    • public class TriangleFromGeometricObject extends GeometricObject{
      
      	private double side1;
      	private double side2;
      	private double side3;
      	
      	public TriangleFromGeometricObject() {
      		super();
      	}
      	
      	public TriangleFromGeometricObject(boolean filled, String color,double side1,double side2,double side3) {
      		super(filled, color);
      		this.side1 = side1;
      		this.side2 = side2;
      		this.side3 = side3;
      	}
      
      	public double getSide1() {
      		return side1;
      	}
      
      	public void setSide1(double side1) {
      		this.side1 = side1;
      	}
      
      	public double getSide2() {
      		return side2;
      	}
      
      	public void setSide2(double side2) {
      		this.side2 = side2;
      	}
      
      	public double getSide3() {
      		return side3;
      	}
      
      	public void setSide3(double side3) {
      		this.side3 = side3;
      	}
      
      	@Override
      	public double getArea() {
      		double area = Math.sqrt((getPerimater()/2)*(getPerimater()/2-side1)*(getPerimater()/2-side2)*(getPerimater()/2-side3));
      		return area;
      	}
      
      	@Override
      	public double getPerimater() {
      		return side1 + side2 + side3;
      	}
      
      	@Override
      	public String toString() {
      		return "TriangleFromGeometricObject [side1=" + side1 + ", side2=" + side2 + ", side3=" + side3 + ", toString()="
      				+ super.toString() + "]";
      	}
      }

       

    • 测试类:

    • public class TriangleCombine {
      
      	public static void main(String[] args) {
      		
      		java.util.Scanner input = new java.util.Scanner(System.in);
      		
      		System.out.println("请输入是否填充:");
      		boolean filled = input.nextBoolean();
      		
      		System.out.println("请输入颜色:");
      		String colorFFF = input.nextLine();
      		String color = input.nextLine();
      		
      		System.out.println("请输入三角形的三条边:");
      		double side1 = input.nextDouble();
      		double side2 = input.nextDouble();
      		double side3 = input.nextDouble();
      		
      		GeometricObject triangle = new TriangleFromGeometricObject(filled,color,side1,side2,side3);
      	
      		System.out.println("filled="+triangle.isFilled());
      		System.out.println("color="+triangle.getColor());
      		System.out.println("dateCrated="+triangle.getDateCreated());
      		System.out.println("side1="+side1+"\nside2="+side2+"\nside3="+side3);
      		System.out.println("getArea="+triangle.getArea());
      		System.out.println("getPerimater="+triangle.getPerimater());
      		System.out.println("toString="+triangle.toString());
      	
      	
      	
      	}
      
      }
      

      java初学者,若有不足请大家指出!谢谢!

    展开全文
  • 编写一个Java应用程序,该程序包括3个类: 定义一个学生类,Student有姓名,学号,选学的课程列表 定义一个课程类:课程名称,课程分数 (1)初始化一个学生,选择了三门课程,并添加到学生的属性中 (2)实现统计...
  • Student,继承Person,增加sno...编写一个方法showInfo(返回自我介绍的字符串)。 public class Person1 { private String name; private int age; public Person1(String name, int age) { super(); t...
  • 设计一个学生包括学号,姓名,性别属性。设计一个大学生,继承自学生,新增专业、高考成绩;设计一个中学生,继承自学生,新增年级、班级属性。对进行测试。 在这里插入代码片 using System; ...
  • 定义一个Employee,其中包括表示姓名、街道地址、城市和邮编等属性,包括ChangeName()和display()等函数。Display()使用cout语句显示姓名、地址、城市和邮编等属性,函数setName()改变对象的姓名属性,实现并测试...
  • 在 IntelliJ IDEA 中这个查看一个类也就是当前类的所有继承关系,包括实现的所有的接口和继承的类, 这个继承,不仅仅是一级的继承关系,包括好几层的继承。父类的父类的父类。直到最后。 可以很清楚明了的了解一个...
  • 定义一个Employee,其中包括表示姓名、街道地址、城市和邮编等属性,包括ChangeName()和display()等函数。Display()使用cout语句显示姓名、地址、城市和邮编等属性,函数setName()改变对象的姓名属性,实现并测试...
  • 类包括: 两个带get方法的数据域x和y分别表示它们的坐标。 一个创建点(0,0)的无参构造方法。 一个创建特定坐标点的构造方法。 一个名为distance的方法,返回从该点到Point类型的指定点之间的距离。 一个名为...
  • //编写一个手机包括手机品牌、手机型号,  方法包括显示手机信息,并编写测试进行对象的创建 package sjpp; public class Mobile {// 定义Mobile String brand, type;// 成员变量 public ...
  • 一个".java"源文件中是否可以包括个类(不是内部类)?有什么限制? 一个.java源文件可以有多个类,但最多只能有一个public类。 java程序是从一个public类的main函数开始执行的,(其实是main线程)。 只能有...
  • 2: 设计一个类Student,该类包括姓名、学号和成绩。 设计一个方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息 (提示 方法的参数是一个学生数组) */ class Student{ private String name; private int ...
  • #include &lt;iostream&gt; using namespace std; class person{ private: string name,sex,number; public : person( string na ,string s,string n){ name=na; sex=s; number=n;... ...
  • /*定义一个日期包括年、月、日三个成员变量,显示日期的方法 * 提供构造方法:定义无参构造方法,和有参构造方法*/代码如下:public class Demo { public static void main(String[] args) { Date date1=new ...
  • //实现一个有理数包括大小比较,有理数的加减乘除。测试你的。 #include &amp;amp;lt;iostream&amp;amp;gt; #include &amp;amp;lt;stdlib.h&amp;amp;gt; class Rational { public: ...
  • 可以有多个类,只能但有一个公共的类,并且公众的类名必须与文件名相harmony和谐。
  •  //定义一个班级(保存所有的学生信息)  class ClassList  {  private Student[] students; //该数组用于存放学生  public ClassList(int n)  {   students =new Student[n];  }  //定义索引...
  • 21.编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类 E。要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak() 方法,在speak方法中输出“咿咿呀呀......”的...
  • /*编写一个学生Students,该成员变量包括学号no、姓名name、性别sex和年龄age,该的成员方法有genNo()getName ).  * getSex().getAge().和setAge() 添加构造方法为所有成员变量赋初值,构造方法要有4种格式:...
  • 设计一个BankAccount

    千次阅读 2020-09-15 19:31:17
    设计一个BankAccount类,这个类包括: (1)一个int型的balance表时账户余额。 (2)一个无参构造方法,将账户余额初始化为0。 (3)一个一个参数的构造方法,将账户余额初始化为该输入的参数。 (4)一个...
  • 题目: 编写一个学生Students,该成员变量包括学号no、姓名name、性别sex和年龄age,
  • 1、定义一个雇员Employee,包括属性:姓名,工号,年龄,工资。 要求:工号的构成方式:(入职年月份)-(性别)-(3位随机序列码),其中入职年月份格式为yyyyMMdd;性别(枚举)为男记录00,性别为女记录01;随机...
  • 试编写一个栈的模板(包括其成员函数定义),以便为任何类型的对象提供栈结构数据的操作。操作至少包括:入栈和出栈操作。#include &lt;iostream&gt; using namespace std; const int depth=100; ...
  • 、查看当前所有的父类 1、找到当前所在的位置,右键选择Diagrams,然后选择Show Diagrams……,以spring的ClassPathXmlApplicationContext为例: 2、在弹出的框中选择Java Class Diagrams: 3、可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,561
精华内容 32,624
关键字:

一个类包括