总结我们以前所学的东西,我们会发现有很多困扰我们的东西,今天我就要先解决三座大山的压迫:重载 重写 重绘
重载:重载我在之前曾经有讲到过,重载分为构造方法①的重载和普通方法的重载。方法的重载主要的不同就是传参的不同:例如
构造方法:
public Student(int score){}
public Student(String name){}
public Student(int i,int j,String name){}
不同的地方就是参数的不同,而这里边我们要特别注意的是,什么情况算是参数不同?
⑴ 数据类型不同
public Student(int score){}
public Student(String name){}
⑵顺序不同
public Student(int score,String name){}
public Student(String name,int score){}
⑶个数不同
public Student(String name){}
public Student(int i,int j,String name){}
方法的重载是十分重要的,对于我来说,尤其是构造方法的重载。就目前我接触的而言,我们经常会用构造方法来传参,传递的参数不一定都是一致的。所以,构造方法的重载对于我来说就应该十分重要了。
① 在这里举个例子,我们最近在做五子棋,之前的画板也是,我们都用到了画笔。二画笔我们是从画布上取得的,但是我们真正用到的地方确实要在监听器里边,那么我们怎么来把画笔传过去呢?
JPanel jp=new JPanel()
Graphics g=jp.getGraphics();
ChessListener l=new ChessListener(g);//这些都是在在主函数类里面的
//而在监听类里边里
public ChessListener(Graphics g){
this.g=g;//这样画笔就传过来了!!!
}
这也是构造方法的一个重要作用,那么,构造方法在实例化对象时,又有什么作用呢?
初始化的作用!!!
Student stu=new Student("张三");
这时候初始化的名字就是张三了。
我们为什么要初始化呢?
每个类里边都有一个默认的无参的构造方法
重写:什么是重写,重写就是方法名相同,参数个数相同,参数类型相同,顺序相同,唯一不同的就是方法体。我在前边详细的讲解了什么是方法的重写,这里就不做介绍,其实最主要的是用处。方法的重写主要是子类继承父类的时候 ,可能会重写父类的构造方法,重写方法的访问修饰符可以大于或者等于父类方法的访问修饰符。
这里我们就要讲讲父类和子类方法的使用了。
//父类
public class Student{
public void Study(){
System.out.println("我在上政治")
}
}
//子类
public class UNStudent{
public static void main(String [] args){
Student stu=new UNStudent();//自动转型
stu.Study();//调用学习方法时,会先调用子类里边的方法,因为你在子类里重写了
//不要觉得这是多此一举哦,这是很有意义的,比如我们在画图板重绘②的 //时候!!!!,但是还要注意一点就是,如果这样⑤⑥⑦
stu.play();⑤//这是否可以呢?答案是不可以,因为父类里没有这个方法,你是调用不到的,stu是Student对象,不是UNStudent对象,除非你强制转型,即:
UNStudent stu1=(UNStudent)stu;
stu1.play();
}
public void Study(){
System.out.println("我在上政治")
}
public void play(){
System.out.println("我在玩")
}
}
public void paint(Graphics g){③
super.paint(g);④
for(int i=0;i<DrawPaneListener.getSize();i++){
Shapes shapes=DrawPaneListener.array[i];
shapes.draw((Graphics2D)g);②//看到这里了没有,正//是因为父类可以去调用子类里边的方法,所以我们只需要写着一个语句,如若不然,我们岂不是要//画一个,写一个
}
}
重绘:什么是重绘,重绘就是当你画完一样东西时,因为拖动,变换大小等因素,会导致画布上的东西消失,这时我们就要把我们画过的东西再重新画一遍,这就是重绘。
重绘的时候有很重要的东西需要谨记,那就是,方法名,参数类型参数名必须一致。不然就不是重绘。③与下面的代码对比:
public void paint(Graphics2D g){}
这就不是方法的重绘了,而是重载。所以,重绘其实就是paint方法的重写(?)
其实还有一点,就是当我们重绘时,如果绘方法原来并不是我们自己写的,那么我们最好继承一下父类的重绘方法,不然我们可能会在重写时缺少对本来元素的掌握,就比如我们上述的重绘方法④,如果我们没有这句,那么在重绘时,画布就会发生变化!!
分享到:
相关推荐
逃出“BAT”三座大山-诞生了“TMD”三小巨头.doc
北祁连西段朱家大山-大长乾铜多金属成矿带,是北祁连重要的铜多金属成矿带.带内出露地层为奥陶系,火山岩十分发育,铜矿化和铜化探异常十分普遍.带内典型矿床九个泉铜矿床,产于奥陶系基性火山岩、凝灰岩中,矿区...
PMP 六座大山练习-前六页答案更新
[大山深处-情深深深如海]-情深深深似海.docx
作用域:函数在定义的时候,就已经确定了函数体内部自由变量的作用域。js没有块及作用域,除了全局作用域外,只有函数才能创建作用域。作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。...
大山的精灵-野菊花作文.doc
[郑州大山外语]致大山外语老师:长大后-我就成了您.docx
大山里的童年-童年的乐趣作文400字.docx
绿色大山设计网站模板是一款大山深处自然景观HTML模板下载。
二年级语文上册 第七单元 26《“红领巾”真好》拓展阅读:会变的大山素材 鲁教版 素材.doc
065-269-街区制理念下片区交通规划实践研究——以李家大山地块规划为例-word资料.pdf
养生之道-白领阶层(杜大山).pptx
NULL 博文链接:https://cooler1217.iteye.com/blog/1567958
实验四 计数、译码和显示电路(数字逻辑)——大山.docx实验四 计数、译码和显示电路(数字逻辑)——大山.docx实验四 计数、译码和显示电路(数字逻辑)——大山.docx实验四 计数、译码和显示电路(数字逻辑)——大山.docx...
盘州市大山镇大山小学地质灾害防治.doc
大山里……京城内……-电影《张穆然》观后感作文.doc
江西:电商浇开寻乌大山深处果农心头幸福花.pdf
基于十万大山盆地含煤地层的沉积环境与聚煤规律存在着密切的关系,为得出该地区聚煤规律,结合实测野外地层剖面、钻孔岩心观察、地球物理测井和连井剖面分析等手段,运用当代沉积学和高分辨率层序地层分析的理论和方法,...
教育行业:从大山教育招股书看K12课外辅导下沉市场空间-20200712-海通证券-17页.pdf