Java 5.22

 访问控制

public 
protected 同一个包的一个类和子类
default 同一个包的一个类
private

访问符 修饰符 class 类名{
    属性
    方法
}

可以在set 时 判断
get 对数据转换和处理
 
对象声明

创建
类名 对象名 = new 构造方法();

null
给用new创造储存空间的引用变量 
可以用于释放内存或不像给类分配内存

类数组

方法


访问符 修饰符 返回值类型 方法名 (参数列表){
}

staitc

值传递
引用传递

构造方法

访问符 构造方法名(){}

this.关键字
1.只在构造方法中,重名
2. this(形参列表)  来调用其他的构造方法。

可变参数:

public static int add(int a, int... b) {}

本质是一个数组。

包可以分隔类,所以一个包中类不能重名。

包的声明: package 包

注意:

1. 包语句必须为Java源文件的第一条非注释性语句。

2. 源文件只能指定一个包(一条package语句)

3. 多个Java源文件可以定义相同的包,这些源文件将全部位于该包下;

(编译后,形成的字节码文件(.class)都在(包名)文件夹中。

与文件目录一样,包有多级 用 '.' 分割

包的导入:

一个类可以访问其所在的包中的其他类,如果要访问其他包中的类,需要导入。

import 包名 .*;        //导入指定包的所有类

import 包名 .类名;        //指定类

 

Java常用包

java.long

包含了Java语言的核心,无需使用import语句导入

java.util        

大量工具类/接口        集合框架类/接口

java.net

网络

java.io

输入/输出

java.text

格式化

java.sql

JDBC数据库

java.awt

图形用户界面(GUI)

java.swing

构建与平台无关的GUI

 

Java垃圾回收机制

 

访问权限修饰符

private 类

默认 包

protected 子类

public

 

如果java源文件里定义的所有的类都没有public,则文件名随意;一个public,则必须与public重名。

 

当需要让类只创建一个对象时,用单列类

单列类

package tiaoshi;
class Singleton{
	private static Singleton instance;
	private Singleton() {}
	public static Singleton getInstance() {
		if(instance==null)
			instance=new Singleton();
		return instance;
	}
}
public class Tiaoshi {
	public static void main(String[] args) {
		Singleton s1=Singleton.getInstance();
		Singleton s2=Singleton.getInstance();
		System.out.println(s1.equals(s2));
	}
}

 

UML建模语言——泛化、实现、依赖、关联、聚合和组合关系 - 简书 (jianshu.com)https://www.jianshu.com/p/7189d105058a

建模语言:

继承:

实现:c++中纯虚函数

依赖:use-a

关联:c++类的包含

聚合:has-a

组成:contain-s

 

继承

Java是单继承

[访问符] [修饰符] class 子类名 extends 父类名 {

}

如果类没有继承其他类,默认继承Object类

继承非私有的

子类创建对象时,默认执行父类不带参的构造方法

子类可以重写继承自父类的成员变量和成员函数

 

如果子类中有特例,可以用方法的覆盖。

方法的重写(方法的覆盖Override)

方法名,返回值类型,参数列表相同

?子类方法抛出的异常类应该比父类更小或相等

子类访问权限比父类更大或相等

都是类方法或者都是实例方法

 

如果方法的参数类型有改变,则为方法的重载。

 

super

子类通过super调用父类的构造方法

当需要调用父类的含参构造时,用super(形参列表)

当子类和父类属性和方法同名时,会隐去父类的,如果需要,用super.属性名/.方法名.

 

final

变量变为常量,需初始化。

方法不可以被子类修改

类不可被继承

 

多态

上转型对象

父类引用变量指向其子类,可以调用子类的对象

能访问父类所有的成员变量和父类未被子类改变的方法,还可以访问到子类的子类重写父类的方法。

 

引用类型的强制转换

基本类型除了布尔,

只能在有继承关系的类之间

 

用instanceof判断是否能转换、

判断左边的对象是否为右边的类或者其子类,实例类的实例。

 

内部类

非静态内部类,局部内部类,静态内部类,匿名内部类

 

非静态内部类

类的内部定义一个类

1.通过外部类的方法调用内部类,不受访问限制

2.import导入内部类的途径,外部类.内部类,受到访问限制。

编译后文件名变为,外部类类名$内部类名.class

 

局部内部类

在方法中定义的类

没有修饰符

可以在该方法中继承

外部类$N 内部类.class

N为数字

 

静态内部类

static 类名

属于整个外部类,而不是单个外部类的对象

可以访问外部类的所有成员,外部类需要用静态方法访问或者静态内部类对象来访问。

 

匿名内部类

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

返返返

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值