第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("身为一名教师,要教书育人");
}
}