JAVA学习阶段总结(二)

断了今生、忘了曾经 提交于 2020-02-19 04:28:20

一、简单的键盘输入和输出

这里补一个很简单的知识点,直接上代码:

package test;

import java.util.Scanner;

public class TestScanner{
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入你的名字:");
		String name = scanner.nextLine();
		System.out.println("请输入你的年龄:");
		int age = scanner.nextInt();

		System.out.println("##############################");
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
	}
}

二、继承的使用要点

在上一个博客中笔者已经简单的介绍过了继承,接下来说一下继承的使用要点。

  • 父类也称作超类、基类、派生类。
  • java中类没有多继承,接口有多继承。
  • 子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不能访问父类私有的属性和方法。
  • 如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。

三、方法的重写override

在简单的掌握了继承的概念后,我们已经可以使用继承的方法去写一些简单的代码了。这时我们可能会遇到下面的情况,子类的方法名、形参列表与父类相同。这时候就需要使用方法的重写,子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。
方法的重写需要符合下面的三个要点:

  1. “==”:方法名、形参列表相同。
  2. “<=”:返回值类型和声明异常类型,子类小于父类。
  3. “>=”:访问权限,子类大于父类。
    下面是一个方法重写的例子:
package test;

public class TestOverride {
	public static void main(String[] args) {
		People p1 = new People();
		People p2 = new Programmer();
		p1.rest();
		p2.rest();
	} 
}
//父类
class People{
	public void rest() {
		System.out.println("我去玩一会");
	}
}
//子类
class Programmer extends People{
	public void rest() {//重写父类rest方法
		System.out.println("我去敲代码");
	}
}

四、方法的重载overload

方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。调用时,会根据不同的参数自动匹配对应的方法。重载的方法,实际是完全不同的方法,只是名称相同而已。
构成方法重载的条件:

  1. 不同的含义:形参类型、形参个数、形参顺序不同。

1.方法名相同,参数类型不同,构成重载:int a(int n1,int n2) 与 double a(double n1,int n2)
2.方法名相同,参数个数不同,构成重载:int a(int n1,int n2) 与 int a(int n1)
3.方法名相同,参数顺序不同,构成重载:double a(int n1,double n2) 与 double a(double n1,int n2)

  1. 只有返回值不同不构成方法的重载。

int a(String str){} 与 void a(String str){}不构成重载

  1. 只有形参的名称不同,不构成方法的重载。

int a(String str){} 与 int a(String str1){}不构成重载

五、多态

之前我们说过方法的重写是实现多态的必要条件。那么什么是多态呢?
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。比如,同样是调用人“吃饭”的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。
多态的要点:

  1. 多态是方法的多态,多态与属性无关。
  2. 多态的存在要有3个必要条件:继承方法重写父类引用指向子类对象
  3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。
package test;

public class TestPolymorphism {
	public static void main(String[] args) {
		Person a = new Person();
		tablewareuse(a);
		Chinese b = new Chinese();
		tablewareuse(b);
	}

	static void tablewareuse(Person a) {
	a.tableware();
	}	

}

class Person{
	public void tableware() {
		System.out.println("我使用餐具吃饭");
	}
}

class  Chinese extends Person{
	public  void tableware() {
		System.out.println("我使用筷子吃饭");
	}
}


六、Object类

Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。

七、强制类型转换

和c语言一样,java中也有强制类型转换。强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟带转换的变量名。例如:

double x = 9.997;
int nx = (int)x;

这样,变量nx的值为9。将浮点数强制转换为整型。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!