【JavaSE】复习(基础)

基础

1.1. public class 和 class

  • public 不是必须的。
  • class可以有多个。
  • 在源文件中,编译后一个class必然对应一个.class。
  • public修饰的class如果有,必须与源文件名一致,且只能有一个。

1.2. 字面量

单引号: 字符型数据
双引号:字符串型数据

1.3. 变量的引出

3个10占用3个不同的空间

System.out.println("10");
System.out.println("10");
System.out.println("10");

占用同一个空间

int i = 10;
System.out.println(i);
System.out.println(i);
System.out.println(i);

1.4. javadoc的使用

javadoc -d [源文件]

1.5. 转义字符

\

1.6. 逻辑运算

&

|

短路与

&&

短路或

||

1.7. 用户键盘输入

import java.util.Scanner;
public class HelloWorld{
	public static void main(String[] args){
		System.out.println("请输入第一个数据");
		Scanner s = new Scanner (System.in);
		int var_1 = s.nextInt();
		System.out.println(var_1);
	}
}

1.8. switch

值只能是int和String

switch(){
	case1:
		java语句;
		break;
	case2:
		java语句;
		break;
	default:
		java语句;
}

1.9. for循环

for(初始化表达式:条件表达式:更新表达式){
	循环体;
}

1.10.方法的调用

a方法调用b方法,当a方法与b方法同在一个类下的时候,可以省略类,直接使用方法名,不在同一个类的时候,不能省略前面的类名。

1.11.break return

break:用来终止最近的switch和循环。
return:用来终止结束方法。

1.12.方法重载(overload)

条件:

  • 在同一个类中
  • 方法名一样
  • 参数的个数,顺序,类型不同

1.13.成员变量中的实例变量

成员变量中的实例变量,必须先创建对象,通过“引用”来访问。

1.14.方法传参

1.15.构造方法

构造方法

[修饰符列表] 构造方法名(形式参数列表){
	构造方法体;
}

普通方法

[修饰符列表] 返回值类型 构造方法名(形式参数列表){
	方法体;
}

构造方法的修饰符:public。
构造方法名必须和类名保持一致。
构造方法不能有返回值类型。

当一个类中没有提供构造方法时,系统会提供一个默认的无参构造方法。
当一个类提供构造方法时,系统不会提供默认的无参构造方法。

构造方法支持方法重载。

封装

2.1.封装

private:同一个类中可见
public:对所有类可见

2.2.实例

实例向量
实例方法

都是对象点的方式引用。

2.3.get和set方法

get方法

public 返回值类型 get+属性名首字母大写(){
	方法体;
	return XXX;
}

set方法

public void set+属性名首字母大写(一个参数){
	xxx = 参数;
}

2.4. Java修饰符

访问控制符:

private default protected public

非访问控制符:

static final abstract synchronized transient volatile

2.5.静态代码块

static {
	代码块。
}

在类加载时执行,在main方法执行之前。

2.6.实例语句块

{
	代码块。
}

在构造方法执行前必然执行实例语句块。

2.7.this

this指向当前对象。

this可以使用在实例方法中,不能使用在静态方法中。

this大部分可以省略,但是在实例方法中,或者在构造方法中,为了区分局部变量和实例变量,这时不能省略this。

public void setName(String name){
	this.name = name;
}

在同一个类中,通过当前的构造方法去调用另一个构造方法。
注意:必须是第一个语句。

this(实际参数列表)

继承

3.1.继承

class A {
}

class B extends A {
}

java只支持单继承。

子类继承父类,除了构造方法外,其它都可以继承。但是私有的属性,无法在父类中直接使用,只能通过间接使用。

Object是根类,默认类都继承Object。

3.2. Object

Object部分源码:

package java.lang;
public class Object {
	protected native Object clone() throws CloneNotSupportedException;
	public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    public boolean equals(Object obj) {
        return (this == obj);
    }
}

当源码中一个方法以" ; "结尾,并且修饰符列表中有"nativa"关键字表示底层调用c++写的dll程序(dll动态链接库)

方法覆盖和多态

4.1方法覆盖

什么时候使用方法覆盖?
当子类继承过来的方法不能满足子类时,子类有权对这个方法进行重写,有必要进行方法的覆盖。

方法覆盖注意事项:

  • 两个类必须有继承关系。构造方法不能覆盖。
  • 重写后的方法具有相同的返回值类型,相同的方法名,相同的形式参数列表。
  • 访问权限不能更低,可以更高。私有方法无法覆盖。
  • 重写之后的方法不能比之前的方法抛出更多的异常,可以更少。
  • 方法覆盖只是针对实例方法,静态方法覆盖没有意义。

4.2 多态

4.2.1 向上转型和向下转型

向上转型:子---->父(自动类型转换)
向下转型:父---->子(强制类型转换)
当要访问子类中特有的方法时,必须向下转型。

Animal a = new Cat();
Cat b = (Cat)a;

必须有继承关系

4.2.1 多态

编译阶段静态绑定,运行阶段动态绑定。

4.2.3 instanceof

c instanceof Cat

为true表示c引用指向的堆内存中的对象是一个Cat类型。为false表示不是。

4.2.3 多态使用

OCP原则:对扩展开发,对修改关闭。

4.2.4 多态的返回值类型

对于基本数据类型来说,返回值类型必须一致。
对于引用数据类型来说,重写后返回值类型可以更小。

4.3. super

在这里插入图片描述

父类和子类中有同样的属性名,或者方法,而又想在子类中访问父类的,则super不能省略。

super.属性名   访问父类的属性
super.方法名(实参)   访问父类的方法
super(实参)    访问父类的构造方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值