//类的定义
public class 类名{
//一个.java源文件可以由多个类,但只能有一个public的类,并且 public的类名必须与文件名一致,如果只有一个类,也可以不用加 public。
//成员变量的定义
private String name; //实例变量、对象变量、
public static int count = 0; //类变量、静态变量
public final int PI = 3.14 //常量
//成员方法的定义
public void func(){
//实例方法、对象方法
}
public static void func2(){
//类方法、静态方法
}
}
//对象的创建
类名 对象名 = new 类名();
构造器
public class A{
private int a,b;
//无参构造,
A(){
}
//有参构造
A(int a){
this.a = a;
}
A(int a,int b){
this.a = a;
this.b = b;
}
说明:
1.构造方法的方法名必须和类名一致。
2.构造方法没有返回值类型,也不能定义为void。
3.构造方法也可以重载。
4.在idea中可以使用alt + insert自动生成构造方法。
5.没有构造方法时,系统会默认添加无参构造。有改造方法时
不会添加,程序员需要手动添加无参构造。
}
封装
什么是封装?
怎么封装?封装就是数据的隐藏,仅给外部提供一些接口来操作和访问数据
封装有什么用?属性私有,提供get/set方法(快捷键:alt + insert)
-
提高代码的安全性,保护数据,防止一些非法操作。
-
提高代码的可复用性。
-
便于修改内部代码,提高可维护性。
-
“高内聚”:封装细节,每个类尽可能独立完成自己的功能,不依赖于类外部的代码。
-
“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作,模块之间联系越复杂耦合度越高,牵一发而动全身。。
怎么继承?继承就是再抽象,提炼出更本质的特征,从而实现对现实世界更好的建模。继承是类之间的其中一种关系
class A{
}
//使用extends关键字
class B extends A{
}
说明:
java只支持单继承。
所有类都直接或者间接继承了Object类,如果没有extends关
键字,默认添加extends Object。
继承的类叫子类或者派生类,被继承的类叫做父类或者基类。
子类会继承父类所有非私有的属性和方法。
protected的作用是对本包下的所有类和其他包下的子类可见。
类的其他关系?
关联关系
类与类之间最常用的一种关系,通常将一个类作为另一个类的属性实现关联关系。
其下有如下几种类型:
关联关系
- 双向关联
//实现方式
class Customer{
private Product[] products; //顾客购买并拥有一些商品
}
class Product{
private Customer customer; //每件商品属于某个顾客
}
- 单向关联
//实现方式
class Customer{
private Address address; //顾客拥有一个地址
}
class Address{
}
- 自关联
class Node{
private Node subNode;
}
- 多重性关联
```java
class Form{
private Button[] buttons;
}
class Button{
}
```
多重性表示方式列表
| 表示方式 | 多重性说明 |
|---|---|
| 1…1 | 表示另一个类的一个对象只与一个该类的对象有关系 |
| 0…* | 表示另一个类的一个对象只与零个或多个该类的对象有关系 |
| 1…* | 表示另一个类的一个对象只与一个或多个该类的对象有关系 |
| 0…1 | 表示另一个类的一个对象只与零个或一个该类的对象有关系 |
| m…n | 表示另一个类的一个对象只与m个或n个该类的对象有关系 |
-
聚合关系
-
组合关系
依赖关系
泛化关系
实现关系
super 多态持续完善中



