前言
大家好,我是 Vic
,今天给大家带来第十一节:讲述类的继承,数据库,文件的读写,图形绘制的概述,希望你们喜欢
类的继承
- 类的继承
- 类的多态性
- final的使用
- 对象类型的转换
类的继承
格式:
[类修饰符] class 子类名 extends 父类名{ ... ...}
如:
class Student extends People{ ... ...}
类的继承:Object->People->Student
Java中的类只支持单继承,不支持多继承。
类成员的继承:
对于继承:一个类中有成员变量和方法。
子类继承父类,可以有部分继承它的父类,也可以自己定义。
子类能继承public和protected的成员变量,不能继承private的成员变量,可以继承同包中的默认修饰符。
同理,子类继承父类的方法,能够继承public和protedted的方法,不能继承private的方法,不能继承构造方法。
成员变量的隐藏:
什么是成员变量的隐藏:
就是子类定义的成员变量与继承父类的成员变量同名时,我们就说子类隐藏了父类的成员变量。
那么,如果访问对象就是子类重新定义的成员变量,子类方法访问的也是子类重新定义的成员变量。
方法的重写
方法的重写就是:子类定义的方法和父类中的方法全一样时,就是可以说子类重写了从父类继承的方法。
从名字,返回类型,和参数个数以及类型都完全相同。重写时,不可以降低方法的访问权限。
super
关键字super,如果子类想使用父类的构造的方法,那么可以使用super的关键字,默认是由super();调用父类不带参数的构造方法。
如:super.x、super.f()
调用父类的变量和方法。
类的多态性
什么是多态性?
多态性:同名的多个方法产生不同的行为。
表现形式:重载与重写。
关键字final
对于final,可以修饰类,成员变量,成员方法。
- 修饰类,该类不能被继承
- 修饰成员变量,给变量为常理,常理必须被赋值,不能再次被赋值
- 如果修饰带有参数的方法,那么该参数不能被改变
如果一个类或方法被final修饰,那么该类不能被继承,不能被重写
Java的数据库
在Java中有Java.sql,用于提供执行数据库结构化查询语句。程序可以跨平台,可以连接不同的数据库系统。
SQL语句
关系型数据库是由多个表组成。
表是主要的操作的对象。
各表之间具有关联性。
属性值,字段,记录
SQL
insert into student values("077555","vic","1444.2.2","男");
select...from...where...
update student set...where...
//class
Class.forName("com.mysql.jdb.Student");
getConnection( )创建与数据库的连接对象;
//DriverManager
用户程序和数据库系统之间维护着
数据库与驱动程序之间的连接
文件的读写
- FileInputStream
- FileOutputStream
- FileReader
- FileWriter
- BufferedReader
- BufferedWriter
Reader类和Writer类的层次结构
Reader-BufferedReader-LineNumberReader
-CharArrayReader-FilterReader-InputStreamReader-FileReader
-PipedReader-StringReader
Writer-BufferedWriter-CharArrayWriter-FilterReader-OutputStreamReader-FileWriter-PipedWriter-StringWriter-PrintWriter
FileWriter可以在已有文件后追加内容
class Demo{
public static void main(String args[]){
FileInputStream fis = null;
try{
fis = new FileInputStream("e:/read.txt");
byte[] buffer = new byte[100];
fis.read(buffer,0,buffer.length);
for(int i = 0;i
FileInputStream和FileOutputStream
class Test{
public static void main(String args[]){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("e:/read.txt"):
fos = new FileOutputStream("e:/write.txt");
byte[] buffer = new byte[100];
int temp = fis.read(buffer,0,buffer.length);
fos.write(buffer,0,temp);
//String s = new String(buffer);
//s = s.trim();
//System.out.println(s);
}
catch(Exception e){
System.out.println(e);
}
}
}
优化:
class Demo{
public static void main(String args[]){
FileInputStream fis=null;
FileOutputStream fos=null;
try{
fis=new FileInputStream("e:/read.txt");
fos=new FileOutStream("e:/write.txt");
byte[] buffer=new byte[1024];
while(true){
int temp=fis.read(buffer,buffer.length);
if(temp==-1){
break;
}
fos.write(buffer,0,temp);
}
}catch(Exception e){
System.out.println(e);
}
finally{
try{
fis.close();
fos.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
}
Reader <-- FileReader
int read(char[] c,int off,int len)
Writer <-- FileWriter
void write(char[] c,int off,int len)
public class TestChar{
public static void main(String args[]){
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("e:/read.txt");
fw = new FileWriter("e:/write.txt");
char[] buffer=new char[100];
int temp = fr.read(buffer,0,buffer.length);
fw.write(buffer,0,temp);
}
catch(Exception e){
System.out.println(e);
}
finally{
try{
}
catch(Excepiton e){
System.out.println(e);
}
}
}
FileReader 和 BufferedReader
BufferedReader属于字符流,输入流,然后呢?它又是处理流
BufferedReader全称字符输入处理流
class Test{
public static void main(String args[]){
FileReader fileReader = null;
BufferReader bufferReader = null;
try{
fileReader = new FileReader("e:/read.txt");
bufferedReader = new BufferedReader(fileReader);
String line = null;
while(true){
line = bufferedReader.readLine();
if(line == null){
break;
}
System.out.println(line);
}
//String line = bufferedReader.readLine();
//System.out.println(line);
}
catch(Exception e){
System.out.println(e);
}
finally{
try{
bufferedReader.close();
fileReader.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
}
图形绘制
- 窗口中图形的绘制
- 鼠标事件
- 键盘事件
绘制组件public void paint(Graphics g)
更新组件public void update(Graphics g)
重绘组件public void repaint()
鼠标事件
mouseClicked();
mouseEntered();
mouseExited();
mousePressed();
mouseReleased();
键盘事件
keyPressed();
keyReleased();
keyTyped();
如果觉得不错,那就点个赞吧!❤️
总结
- 本文讲了第十一节:讲述类的继承,数据库,文件的读写,图形绘制,如果您还有更好地理解,欢迎沟通
- 定位:分享
Android
&Java
知识点,有兴趣可以继续关注