java核心技术读书笔记(第三天:对象与类)

本文深入探讨了Java中的类与对象的概念,强调类作为对象模板的角色,以及如何通过实例化创建对象。同时,解释了构造器的重要性和重载,以及静态字段和方法的使用。在对象构造方面,阐述了如何初始化对象并赋予初始值。此外,还讨论了包的作用,JAR文件的打包过程,以及文档注释对于代码可读性的重要性。
摘要由CSDN通过智能技术生成


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.文档注释🧣

后续补充




🧱后续待更。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晓晓的雨夜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值