今日计划(已经完成的):

看了一篇图像分割的文献
《疯狂的java讲义》——149~169

阅读笔记:

  • 关于多态:
    多态是指编译的时候是父类型,运行的时候是子类型,每一个子类型都重写父类型的某个函数a。在运行的时候每个子类型都会执行自己相对性的函数a,这样就实现了多态。
    由于编译的时候是父亲类型,所以只能调用父亲的方法,或者是父类型和子类型都有的方法,不能调用子类型有但父类型没有的方法。
    对比一下这两个程序的运行结果就有所明白:
package practice;


class base1{
	//准备一个方法
	public void haha() {
		System.out.println("父类型的函数haha");
	}
	
	void test(int a) {//会被子类型重写的函数

		System.out.println("父类型的test:"+a);
	}
}


class base2 extends base1{
	void test(int a) {//会被子类型重写的函数
		System.out.println("base2子类型的test"+a);
	}
}
//函数重载,三种不同的方式
public class base3 extends base1{
	
	void test(int a) {//会被子类型重写的函数
		System.out.println("base3子类型的test"+a);
	}
	
	public static void main(String[] args) {
			base1 b=new base2();
			base1 bb=new base3();//创建两个对象
			
			b.test(1);
			bb.test(2);
	}
}

VS

class base1{
	//准备一个方法
	public void haha() {
		System.out.println("父类型的函数haha");
	}
	
	void test(int a) {//会被子类型重写的函数

		System.out.println("父类型的test:"+a);
	}
}


class base2 extends base1{
	void test() {//会被子类型重写的函数
		System.out.println("base2子类型的test");
	}
}
//函数重载,三种不同的方式
public class base3 extends base1{
	
	void test() {//会被子类型重写的函数
		System.out.println("base3子类型的test");
	}
	
	public static void main(String[] args) {
			base1 b=new base2();
			base1 bb=new base3();//创建两个对象
			
			b.test(1);
			bb.test(2);
	}
}

2019/4/4

  • 关于实例变量
    2019/4/4
    【代码如下】:
class base1{
	public String name="cheng";
	//准备一个方法
	public void haha() {
		System.out.println("父类型的函数haha");
	}
	
	void test(int a) {//会被子类型重写的函数

		System.out.println("父类型的test:"+a);
	}
}


class base2 extends base1{
	public String name="yi";
	void test() {//会被子类型重写的函数
		System.out.println("base2子类型的test");
	}
}
//函数重载,三种不同的方式
public class base3 extends base1{
	public String name="ming";
	void test() {//会被子类型重写的函数
		System.out.println("base3子类型的test");
	}
	public static void main(String[] args) {
			base1 b=new base2();
			base1 bb=new base3();//创建两个对象
			
			b.test(1);
			System.out.println(b.name);
			bb.test(2);
			System.out.println(bb.name);
	}
}

  • 引用变量的强制类型转换
    2019/4/4也就是说:子类实例可以随时转换成父类实例,但是父类实例只有在实际上是子类实例时才能转换成子类型。对于数值类型来说,可以随意转换。

  • instanceof运算符
    2019/4/42019/4/4

存在继承关系,可以使用instanceof运算,也就是说编译可以通过。如果不存在继承关系,压根没法通过编译。

  • 继承与组合
    2019/4/42019/4/4final修饰一个类,它将不能够被继承。

1、组合需要传递参数
2019/4/4
2、组合的时候需要对类进行初始化,并将其设置成private属性,比较安全,参看155面例子。
3、使用组合关系并不意味着更大的开销,使用继承的时候一样要对父类进行初始化。

  • 初始化块
    1、不论初始化块是在主函数的前面还是后面,都在这个类的构造函数之前执行。
    2、初始化块相当于将构造函数中无参的部分拿出来了,使得代码更加健壮提高可维护性。
    3、若有多个初始化块,按顺序执行。
    4、
package practice;

public class Base2  {
	
	public  static void main(String[] args) {
		Base2 b2=new Base2();
		System.out.println(b2.name);
		
		
	}
	{
		name="yi";
		
	}
	public String name="cheng";
}

这个程序的结果是"cheng",也就是说,初始化块和变量初始化的效果一样。
5、
2019/4/42019/4/4

  • 静态初始化块:
    1、【代码示例】:
    2019/4/42019/4/4
    结果:
    2019/4/4
    解释:
    2019/4/4
  • 关于包装类的相互转化

相关文章:

  • 2021-12-21
  • 2021-07-08
  • 2021-08-29
  • 2021-06-12
  • 2021-12-07
  • 2021-10-13
  • 2021-04-01
猜你喜欢
  • 2021-10-09
  • 2021-07-05
  • 2021-06-16
  • 2021-06-04
  • 2021-07-12
  • 2021-07-23
  • 2022-01-17
相关资源
相似解决方案