第8天啦!

由于本人已经学习Java语言超过一周,所以就收到了来自该语言的第一份考验:Java语言基础测试。

一、图片验证码的生成(观看相关视频完成的。。。)

//还未能够成功地实现随机修改颜色
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.Random;
public class maneger
{
    //数组
    static String[] strs={"a","b","c","d","e","f","g","h","i",
            "j","k","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
            "2","3","4","4","5","6","7","8","9"};
    public static void main(String[] args) throws IOException
    {
        Scanner sc=new Scanner(System.in);
        Random r=new Random();
        //需求:通过Java生成图片--含有字母。数字。干扰线
        int w=150;//宽度
        int h=50;//高度
        int imageType=BufferedImage.TYPE_INT_RGB;//图片类型--图片的组成方式(三原色)
        BufferedImage image=new BufferedImage(w,h,imageType);
        //画板准备完成
        //准备画笔--修改图片颜色
        Graphics g=image.getGraphics();//获取画笔对象
        //设置颜色
        g.setColor(Color.yellow);
        //填充矩形
        g.fillRect(0,0,w,h);
        //随机取字
        g.setColor(Color.blue);
        //设置字体
        g.setFont(new Font("楷体",Font.PLAIN,25));
        int x=25,y=25;
        for(int i=0;i<4;i++)
        {
            int num=r.nextInt(strs.length);
            String str=strs[num];
            //将字符画到画板上面
            g.drawString(str,x,y);
            x+=25;
        }

        //画干扰线
        g.setColor(Color.green);
        for (int i = 0; i < 10; i++) {
            int x1=r.nextInt(30);
            int y1=r.nextInt(50);
            int x2=r.nextInt(30)+120;
            int y2=r.nextInt(50);
            g.drawLine(x1,y1,x2,y2);

        }

        ImageIO.write(image,"jpg",new File("D:\\java\\aaa.jpg"));
        //传参保存完成
    }
}

二、Java随机四则运算代码的输出

//功能:1指定题目数量
//     2 运算符、数字均随机
//     3指定是否使用乘除
import java.util.Scanner;
import java.util.Random;
public class manager
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        Random r=new Random();
        int n=r.nextInt();
        int []b=new int[n];//运算符个数
        int []a=new int[n];//数字个数
        int []f=new int[n];//运算符
        int []x=new int[n];//我的答案
        int []y=new int[n];//系统根据数学式所得出的答案
        String s=new String();
        int i;
        int a,b,c;
        int count;
        int t;
        system.cout.println("请确认是否使用乘除法运算:1--使用;0--不使用");
            t=sc.nextInt();
        count=sc.nextInt();
        for(i=0;i<count;i++)
        {
            a=r.nextInt(100);
            b=r.nextInt(100);
            f=r.nextInt(4);
            system.cout.println(a[i]+get(f[i])+b[i]+'=');
            if(t==1)
            {
                 y[i]=getget(a[i],b[i],f[i]);
            }
            if(t==0)
            {
                y[i]=getget2(a,b,f[i]);
}
            system.cout.println("请输入你的答案:");
            x[i]=sc.nextInt();
            if(x[i]==y[i])
            {
                system.out.println("答对啦!");
}
            else
            {
                system.out.println("答错了。");
}
}
}
    public static String get(int m)//运算符
    {
        String mm="";
        switch(m)
        {
            case 0:
                String mm="+";
                break;
            case 1:
                String mm="-";
                break;
            case 2:
                String mm="*";
                break;
            case 3:
                String mm="/";
                break;
}
        return mm;
}
    public static int getget(int q,int w,int pp)//计算
    {
       int sum=0;
        switch(pp)
        {
            case 0:
                sum=q+w;
                break;
            case 1:
                sum=q-w;
                break;
            case 2:
                sum=q*w;
                break;
            case 3:
                if(w==0)
                {
                    system.out.println("报错!");
}
                else
                {
                    sum=q/w;
                }
                break;
}
}
     public static int getget2(int q,int w,int pp)//计算
    {
       int sum=0;
        switch(pp)
        {
            case 0:
                sum=q+w;
                break;
            case 1:
                sum=q-w;
                break;
           
}
}
}

但是新知识还是要学哒,本次的学习内容是有关于类的继承

鉴于类也是本学期C++学习的重点内容,所以对Java的类的知识还是能够不错掌握的,下面就是我对本次学习的总结啦!

一、初步接触

与C++的主要不同是,子类与父类的定义主要依靠extends,区别于C++中的:,其次就是子类默认继承父类的无参构造函数,要想也继承父类的有参构造函数,需要用到super关键字,由super()-->super(...);

若是父类,子类和子类的成员方法中均含有同一个类型名,被赋予的不同值的参数,默认先访问子类成员方法中的参数,要想跳过该成员方法中的参数,可以在使用该类型名时加上this.类型名即可跳过;若是再想直接访问父类中的同一类型名的参数,可以使用super.类型名即可。

二、方法重写

子类中出现了和父类中一样的方法声明:主要用于子类既可以继承父类的功能,也具有自己的独有功能;

举例:

//测试类
public class PhoneDemo
{
    public static void main(String[] args)
    {
        newPhone p=new newPhone();
        p.show("lily");
    }
}
//父类
public class Phone
{
    public void show(String name)
    {
        System.out.println("给"+name+"打电话");//相当于super.show(name);
    }
}
//子类
public class newPhone extends Phone
{
   public void show(String name)
   {
       System.out.println("开启视频功能");
       System.out.println("给"+name+"打电话");
          super.show(name);
   }
}

需要注意的是,在方法重写声明中,易将声明写错,所以,可以利用@Override进行检查方法重写声明的正确性

注意事项:

1、私有成员方法不能够被重写

2、在方法重写时,其访问权限不要比父类的低就不会报错(权限排序:public>默认>private)

Java中继承的注意事项

在继承中,不可以同时继承多个类,只能继承一个类(需要单独继承)

总结:

Java中只支持单继承不支持多继承;但支持多层继承

Example:

//测试类
public class result
{
    public static void main(String[] args)
    {
        son s=new son();
        s.show();
    }
}
//父类
public class father
{
    public void show()
    {
        System.out.println("爸爸爱编程");
    }
}
//子类
public class son extends father
{
    public void show()
    {
        System.out.println("儿子会编程");
        super.show();
    }
}

基础应用举例:

//测试类
public class test
{
    public static void main(String[] args)
    {
        student s=new student();
        s.show("姓名","年龄");
        s.show(工资,工号);
    }
}
//学生类作为子类
public class student
{
    public String name;
    public int age;
    public void show(String name,int age)
    {
        System.out.println("姓名:"+name);
        System.out.println("年龄:"+age);
        System.out.println("身为一名学生,要努力学习");
    }
}
//教师类作为父类
public class teacher
{
    public int wages;
    public int id;
    public void show(int wages,int id)
    {
        System.out.println("工资:"+wages);
        System.out.println("工号:"+id);
        System.out.println("身为一名教师,要教书育人");
    }
}
posted @ 2022-04-23 19:16  yesyes1  阅读(31)  评论(0编辑  收藏  举报