1.类与对象🪢
类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
- 堆内存:保存对象的属性内容。堆内存需要用new关键字来分配空间
- 栈内存:保存的是堆内存的地址(在这里为了分析方便,可以简单理解为栈内存保存的是对象的名字)
class Person {
String name ;
int age ;
public void get() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
public class TestDemo {
public static void main(String args[]) {
Person per = new Person() ;// 声明并实例化对象
per.name = "张三" ;//操作属性内容
per.age = 30 ;//操作属性内容
per.get() ;//调用类中的get()方法
}
}
2.构造器🧶
- 构造器的名称必须和类名一致
- 一个类中可以定义多个构造器,但是构造器的参数列表必须不同(重载)
- 如果我们没有手动定义构造器,则Java系统会提供一个默认的构造器给我们使用,一旦我们定义了构造器,则系统会把默认的构造器收回
- 构造器的作用:实例化对象,给对象赋初始值
- 代码游离块优先执行
public class People{
//通过new People()调用
public People(){
this(""); //调用其他构造器
}
//通过new People("字符串")调用
public People(String str){
}
}
3.静态字段与方法🧵
这里给Employee类加入一个实例域id和一个静态域nextId:
class Employee{
......
private int id;
private static int nextId = 1;
}
如今,每个雇员对象都有一个自己的id域,但这个类的全部实例将共享一个nextId域。
静态方法是不能向对象实施操作的方法。
比如,Math.pow(x, a),它在运算的时候,不论使用什么Math对象。换句话说,没有隐式的参数(this)。
由于静态方法不能操作对象,所以不能在静态方法中访问实例域。可是。静态方法能够访问自身类中的静态域。
public static int getNextId(){
return nextId;//return static field
}
初始化块
{
id=nextId;
nextId++;
}
static块,会在加载类的时候默认执行一次
static {//先执行
logger.info("static...");
toBeUsedList.add(1);
toBeUsedList.add(2);
toBeUsedList.add(3);
}
静态内部类
class ArrayAlg{
public static class Pair{//不须要内部类引用外围对象。用static断绝这样的引用。
private double first;
private double second;
public Pair(double f, double s){
first = f;
second = s;
}
public double getFirst(){
return first;
}
public double getSecond(){
return second;
}
public static Pair minmax(double[] values){
double min = Double.MAX_VALUE;
double max = Double.MIN_VALUE;
for(double v:values){
if(min>v) min = v;
if(max<v) max = v;
}
return new Pair(min,max);
}
}//end Pair
}
4.对象构造🪡
后续补充
5.包🧥
后续补充
6.JAR文件🧢
后续补充
7.文档注释🧣
后续补充
🧱后续待更。。。