Java学习day011(oop):

1.方法的重写(override):重新写/覆盖
1.1 发生在父子类中,方法名相同参数列表相同(签名相同),方法体不同;
1.2 重写方法被调用时,看对象的类型(new谁调谁);
1.3 重写需遵循“两同两小一大”的原则————了解,一般情况一模一样;
1.3.1 两同:方法名、参数列表相同
1.3.2 两小:

①派生类方法的返回值类型要小于或等于超类方法;
void时必须相同
基本类型必须相同
引用类型时,必须小于等于。——(程序认为超类大,派生类小)
②派生类方法抛出的异常小于或等于超类方法;

1.3.3 派生类方法的访问权限大于或等于超类方法——访问修饰符时
2.重写和重载的区别————常见面试题
2.1 重写(override)

Ⅰ. 发生在父子两个类中,方法名、列表参数相同,方法体不同;
Ⅱ. 遵循“运行期绑定”,看对象的类型来绑定方法;
ⅢⅣ

2.2 重载(overload)

Ⅰ. 发生在一个类中,方法名相同,参数列表不同,方法体不同;
Ⅱ. 遵循“编译期绑定”,看参数/引用类型来绑定方法;

Aoo o=new Boo();
override______Boo
overload______Aoo
3. package和import
3.1 package

作用:避免类的命名冲突
包名可以有层次结构,类的全称是:包名.类名
同包中的类不可以同名,不同包的类可以同名;
建议包名的所以字母都是小写

起名的建议
域名反写.项目名称.模块名称.类名
com.taobao.aporject.studentmanager
com.taobao.aporject.teachermanager


3.2 import

同步中的类可以直接访问
不同包内的类不可以直接访问,若想要访问只有两个方式
①先import声明类再访问类————建议
②写出类的全称————太繁琐,不建议

4. 访问控制修饰符

数据(变量)私有化(private)
行为(方法)公开化(public)

4.1 public :公共的,任何类都能访问
4.2 private :私有的,只能本类使用
4.3 protected :受保护的,本类、派生类、同包类可用
4.4 默认:什么都不加,本类、同包类可用
说明:

①类的访问权限只能是public和默认的
②类中成员的访问权限如上四种都可以
一般类都定义权限为public;

5. final:最终的、不可改变的,单独应用几率低
5.1 修饰变量:变量不能被改写
5.2 修饰方法:方法不能被重写
5.3 修饰类:类不可被继承,但可以继承未被修饰的类

Swing相关的东西————操纵窗口(目前已经不适应了)

  1. import ——JFrame+JPanel

  2. 设计world类来继承JPanel

  3. 复制粘贴到main中JFrame frame = new JFrame();
    World world = new World();
    frame.add(world);

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(WIDTH, HEIGHT);
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
     
     world.action();
    
  4. main中 frame.setSize();的参数改为400,700;
    练习

/*5package day05;

public class Person {

	protected int age;
	protected String address;
	protected String name;
	public Person(String name,int age,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
	}
}
package day05;

public class Doctor extends Person{

	private String leavl;
	public Doctor(String name,int age,String address,String leavl){
		super(name,age,address);
		this.leavl=leavl;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
	}
}
package day05;

public class Student extends Person{

	private int stuId;
	public Student(String name,int age,String address,int stuId){
		super(name,age,address);
		this.stuId=stuId;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
	}
}
package day05;

public class Teacher extends Person{

	private int slary;
	public Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
	}
}
package day05;

public class Test {

	public static void main(String[] args) {

		Person []ps=new Person[6];
		ps[0]=new Student("zw",22,"lg",20192020);
		ps[1]=new Student("zs",22,"lg",20192020);
		ps[2]=new Teacher("wq",33,"lg",5000);
		ps[3]=new Teacher("ew",42,"lg",4000);
		ps[4]=new Doctor("xxc",52,"lg","s");
		ps[5]=new Doctor("sda",62,"lg","a");
		for(int i=0;i<ps.length;i++){
			System.out.println("name:"+ps[i].name);
			ps[i].sayHi();
		}
	}

}
/*4 package day05;

public class Person {

	protected int age;
	protected String address;
	protected String name;
	public Person(String name,int age,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
	}
}
package day05;

public class Doctor extends Person{

	private String leavl;
	public Doctor(String name,int age,String address,String leavl){
		super(name,age,address);
		this.leavl=leavl;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
	}
}
package day05;

public class Student extends Person{

	private int stuId;
	public Student(String name,int age,String address,int stuId){
		super(name,age,address);
		this.stuId=stuId;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
	}
}
package day05;

public class Teacher extends Person{

	private int slary;
	public Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
	}
}
package day05;

public class Test {

	public static void main(String[] args) {

		Person []ps=new Person[6];
		ps[0]=new Student("万万",22,"lg",20192020);
		ps[1]=new Student("按时",22,"lg",20192021);
		ps[2]=new Teacher("斜齿",33,"lg",5000);
		ps[3]=new Teacher("深度",42,"lg",4000);
		ps[4]=new Doctor("反复",52,"lg","s");
		ps[5]=new Doctor("国防",62,"lg","a");
		for(int i=0;i<ps.length;i++){
			System.out.println("name:"+ps[i].name);
			ps[i].sayHi();
		}
	}

}
/*3 package day05;

public class Person {

	protected int age;
	protected String address;
	protected String name;
	public Person(String name,int age,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
	}
}
package day05;

public class Doctor extends Person{

	private String leavl;
	public Doctor(String name,int age,String address,String leavl){
		super(name,age,address);
		this.leavl=leavl;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
	}
}
package day05;

public class Student extends Person{

	private int stuId;
	public Student(String name,int age,String address,int stuId){
		super(name,age,address);
		this.stuId=stuId;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
	}
}
package day05;

public class Teacher extends Person{

	private int slary;
	public Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
	}
}
package day05;

public class Test {

	public static void main(String[] args) {

		Person []ps=new Person[6];
		ps[0]=new Student("如图",22,"lg",20192020);
		ps[1]=new Student("地方",22,"lg",20192022);
		ps[2]=new Teacher("从v",33,"lg",5000);
		ps[3]=new Teacher("更换",42,"lg",4000);
		ps[4]=new Doctor("即可",52,"lg","s");
		ps[5]=new Doctor("即可我",62,"lg","a");
		for(int i=0;i<ps.length;i++){
			System.out.println("name:"+ps[i].name);
			ps[i].sayHi();
		}
	}

}
/*2 package day05;

public class Person {

	protected int age;
	protected String address;
	protected String name;
	public Person(String name,int age,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
	}
}
package day05;

public class Doctor extends Person{

	private String leavl;
	public Doctor(String name,int age,String address,String leavl){
		super(name,age,address);
		this.leavl=leavl;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
	}
}
package day05;

public class Student extends Person{

	private int stuId;
	public Student(String name,int age,String address,int stuId){
		super(name,age,address);
		this.stuId=stuId;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
	}
}
package day05;

public class Teacher extends Person{

	private int slary;
	public Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
	}
}
package day05;

public class Test {

	public static void main(String[] args) {

		Person []ps=new Person[6];
		ps[0]=new Student("如图",22,"lg",20193020);
		ps[1]=new Student("覆盖",22,"lg",20191020);
		ps[2]=new Teacher("不能",33,"lg",5000);
		ps[3]=new Teacher("喝酒",42,"lg",4000);
		ps[4]=new Doctor("即可",52,"lg","s");
		ps[5]=new Doctor("与",62,"lg","a");
		for(int i=0;i<ps.length;i++){
			System.out.println("name:"+ps[i].name);
			ps[i].sayHi();
		}
	}

}
/*1 package day05;

public class Person {

	protected int age;
	protected String address;
	protected String name;
	public Person(String name,int age,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
	}
}
package day05;

public class Doctor extends Person{

	private String leavl;
	public Doctor(String name,int age,String address,String leavl){
		super(name,age,address);
		this.leavl=leavl;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
	}
}
package day05;

public class Student extends Person{

	private int stuId;
	public Student(String name,int age,String address,int stuId){
		super(name,age,address);
		this.stuId=stuId;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
	}
}
package day05;

public class Teacher extends Person{

	private int slary;
	public Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
	public void sayHi(){
		System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
	}
}
package day05;

public class Test {

	public static void main(String[] args) {

		Person []ps=new Person[6];
		ps[0]=new Student("请问",22,"lg",20192023);
		ps[1]=new Student("撒",22,"lg",20192024);
		ps[2]=new Teacher("现在",33,"lg",5000);
		ps[3]=new Teacher("反倒",42,"lg",4000);
		ps[4]=new Doctor("二",52,"lg","s");
		ps[5]=new Doctor("如图",62,"lg","a");
		for(int i=0;i<ps.length;i++){
			System.out.println("name:"+ps[i].name);
			ps[i].sayHi();
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值