尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

第二周的Java学习

第二周的Java学习 学习成果本周我学习了多维数组的应用、类与对象、成员变量与方法、面向对象等大的模块接下来我将用文字和图片的形式总结二维数组、类与对象、构造方法、变量、private分装、this关键字、标准JavaBean类型等内容的知识点。一、二维数组二维数组的本质存放一维数组的一维数组数组里面装数组。1、静态初始化 定义时直接给出具体元素。格式int[][] arr {{1,2,3}, {4,5}, {6,7,8,9}};动态初始化 只指定行数和列数系统分配默认值。格式int[][] arr newint[m][n];含义创建 m 个一维数组每个数组包含 n 个元素。2、基础含义- arr.length获取二维数组的行数也就是里面有多少个一维数组​- arr[i] 取出二维数组里第 i 个一维数组​- arr[i].length 取出第i行一维数组的列数每行长度可以不一样不规则二维数组​- arr[i][j] 取出第i行、第j列的单个元素易错点1. 不要把 arr[i] 当成单个数据直接打印 arr[i] 会输出一维数组的地址值​2. 不要写死列数固定写5优先用 arr[i].length 适配不规则二维数组​3. 索引从0开始最大下标 arr.length-1 、 arr[i].length-1 容易数组越界3、初始化写法4、遍历方式双层for循环外层循环控制行内层循环控制当前行的每一列5、默认值规则和一维数组一致int默认0、double默认0、boolean默认false、引用类型如String默认null二、类与对象1. 核心概念- 类 Class模板、图纸描述一类事物有哪些特征变量、行为方法​- 对象 Object根据模板new出来的具体实例是类的产物-一句话类是抽象模板对象是真实个体2. 类的组成一个类里面只能写成员变量、成员方法、构造方法方法不能嵌套方法不能写在类的大括号外面超级易错点大括号匹配错误方法跑到class外面直接编译报错3、对象的创建与使用创建格式 类名 对象名 new类名();举例访问属性 对象名.成员变量调用方法 对象名.方法名()4、理解对象的创建过程①加载 class 文件 将编译好的 Student.class 和 TestStudent.class 加载到方法区。②申明局部变量 在栈内存Stack中开辟一个空间定义局部变量s 。③在堆内存中开辟空间 在堆内存Heap中为 new Student() 分配一块空间。④默认初始化 系统自动为堆内存中的成员变量赋默认值 int age 0 String name null 。⑤显示初始化 如果成员变量在定义时给了初始值如 int age 18 此时会覆盖默认值。⑥构造方法初始化 执行构造方法体中的代码如 this.name 张三 完成对象的定制。⑦地址赋值 将堆内存中对象的地址值如 001 赋值给栈内存中的局部变量 s 。此时 s 指向了该对象。三、构造方法1、概述与格式作用 在创建对象执行 new 操作时由虚拟机自动调用作用是给成员变量进行初始化赋初值。格式修饰符类名(参数列表) {方法体;}硬性特征-方法名必须和类名完全一致包括大小写。-没有返回值类型连 void 都没有。-没有具体的返回值不能由 return 带回结果数据。2. 分类与作用-无参构造空参构造 public Student() {}初始化对象时成员变量的数据均采用默认值。-带参构造 public Student(String name, int age) {this.name name;this.age age; }初始化对象时同时可以根据传入的参数为对象进行赋值。推荐开发方式 无论是否使用都建议手动书写无参构造方法和带全部参数的构造方法。极高频易错点默认构造的消失如果类中没有定义任何构造方法Java 编译器会自动赠送一个默认的无参构造方法。一旦你手写了一个带参构造方法如 Student(String name, int age) 编译器赠送的默认无参构造就消失了。此时如果还想用 new Student() 创建对象必须手动补写无参构造方法否则编译报错。四、变量1. 成员变量位置类中方法外面- 有默认初始值​- 作用范围整个类内所有方法都可以直接访问2. 成员方法位置类里面作用描述这个对象能做的行为格式3. 局部变量位置方法内部、for循环括号里- 没有默认值使用前必须手动赋值​- 作用域只在当前方法/循环内有效出了范围就失效4. 形参位置方法小括号里面属于局部变量的一种接收调用时传入的数据5. 就近原则如果局部变量形参和成员变量名字一样优先使用局部变量易错点同名变量赋值失效就是就近原则导致需要this解决五、private封装1. private 私有权限修饰符被private修饰的成员变量/方法只能在当前类内部访问外面的对象不能直接访问​2. 封装思想隐藏内部数据不让外部随便篡改外部只能通过我们提供的方法来访问、修改数据在方法里做合法性校验保护数据安全。​3. 配套规范私有变量要提供 getXxx() 、 setXxx()- set方法给变量赋值可以加判断过滤非法数据- get方法获取变量的值高频错误set里面判断写成员变量而不是判断传入的形参校验完全失效六、this关键字作用this 代表当前正在操作的对象区分局部变量和成员变量本质代表方法调用者的地址值最常用场景解决就近原则区分【成员变量】和【同名形参】其他用法this(...) 在构造方法中调用本类其他构造必须写在第一行易错点分不清什么时候必须写this不写this同名时赋值失败七、标准JavaBean类型一个类满足下面4条就是标准JavaBean1. 所有成员变量全部用 private 私有化​2. 必须提供无参构造方法 全参构造方法​3. 每一个私有成员变量都配套对应的 get、set 方法​4. 类名使用大驼峰命名每个单词首字母大写如 StudentInfo✅标准模板示例
返回列表