1. 数组的工具类

Arrays.toString()–查看数组元素

Arrays.sort()–数组元素排序

Arrays.copyOf()–复制数组/数组的扩容 /缩容

Arrays.copyOfRange()–指定首位元素复制原数组

package cn.tedu.arrays;import java.util.Arrays;//本类测试数组的 工具类Arrays
public class TestArraysSortAPI {public static void main(String[] args) {// f1();//测试toString--查看数组元素// f2();//测试 sort--数组元素排序f3();// 测试 copyof--复制数组 /数组的扩容/缩容}public static void f3() {// 3. 创建测试数组/** 数组一旦创建,长度不可改变 */int[] from = { 1, 2, 3, 4, 5 };// 3.1 数组的普通复制/** 两个参数:(original, newLength) 要复制谁,复制的长度 */int[] to = Arrays.copyOf(from, 5);System.out.println(Arrays.toString(to));// 3.2 数组的扩容/*** 扩容:扩充 容量,并不是修改远数组 先创建对应长度的新数组,复制原数组的数据,其余位置为int默认值0*/int[] to2 = Arrays.copyOf(from, 10);System.out.println(Arrays.toString(to2));// 3.3 数组的缩容/*** 扩容:减少容量,并不是修改远数组 先创建对应长度的新数组,复制原数组前面部分数据,类似于截取*/int[] to3 = Arrays.copyOf(from, 3);System.out.println(Arrays.toString(to3));// 3.4 指定首尾元素复制原数组// (original, from, to)复制的是下标[2,4)位置上的元素a(2)--a(3)int[] to4 = Arrays.copyOfRange(from, 2, 4);System.out.println(Arrays.toString(to4));}// 2. 创建f2()测试Arrays.sortpublic static void f2() {// 2.1 准备一个乱序数组int[] a = { 9, 55, 2, 355, 223, 0 };// 2.2 用工具类方法对a数组进行排序/*** sort()方法是底层优化过的快速排序算法 是直接对无序数组进行排序,排序后a数组就是有序数组*/Arrays.sort(a);System.out.println(Arrays.toString(a));}// 1. 创建f1()用来测试Arrays.toString(数组名)public static void f1() {// 定义长度为3的String类型的数组String[] s = new String[3];s[0] = "A";s[1] = "B";s[2] = "C";System.out.println(s);// [Ljava.lang.String;@15db9742 这是地址值System.out.println(Arrays.toString(s));// [A, B, C] 具体元素}
}

2. 面向对象 类 对象 封装

2.1 面向对象概念

面向对象和面向方法都是编程思想

2.2 面向对象的三大特征

封装 继承 多态

2.2 类和对象

类:Java最基本的单位,类似于类型,类是一类事物的抽象,可以理解为模版或者设计图纸

对象:三个特征:状态,行为和标识

状态–基本特征–成员变量

行为–功能–方法

标识–对象内存在唯一的地址值和其他对象区分

类是一类事物的抽象,对象是具体的实现

2.3 类的创建练习

package cn.tedu.oop;//本类用于练习面向对象
/**分析手机这一类事物--通过类来描述* 属性:品牌 价格 颜色 尺寸* 功能:打电话 发微信 看视频* */
/*** 在一个java文件中可以写多个class,但是被public修饰的只能有一个 而且这个公共类的名字必须 与文件名保持一致*/
public class TestCreateClass {// 2. 创建入口函数public static void main(String[] args) {// 3. 在main()方法中通过new关键字来创建对应类的对象Phone p = new Phone();// 4. 通过.来完成对象功能的调用p.call();// 调用打电话的方法p.message();p.video();// 5. 通过.来查看对象的属性值System.out.println(p.brand);System.out.println(p.color);System.out.println(p.price);System.out.println(p.size);// 6.创建第二个对象Phone p2 = new Phone();// 8.给p2对象设置属性值p2.color = "五彩斑斓的黑";p2.brand = "banana";p2.price = 6666.66;p2.size = 233;// 7. 通过p2对象 查看属性值System.out.println(p2.brand);System.out.println(p2.color);System.out.println(p2.price);System.out.println(p2.size);// 9.通过p2对象,调用模版里的功能p2.call();p2.message();p2.video();}
}/*** 通过class关键字描述一个类型 类是一类事物的抽象,抽象的规定这一类事物的特征与行为*/
//1.创建手机类
class Phone {// 特征(属性)--用类的成员变量来 描述--位置:类里方法外String brand;// 品牌double price;double size;String color;// 功能(行为)--用类的方法来描述--修饰符 返回值类型 方法名(参数列表 ){方法体}public void call() {System.out.println("正在打电话");}public void message() {System.out.println("发微信");}public void video() {System.out.println("看视频");}
}

2.4 对象在内存中的储存

Java把内存分成5大区域,我们重点关注栈和堆。

一般来讲局部变量存在栈中,方法执行完毕内存就被释放
对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
每个堆内存的元素都有地址值
对象中的属性都是有默认值的
TIPS: 栈与队列指的是一种数据的结构。
栈:先进后出(FILO – First In Last Out)
队列:先进先出(FIFO – First In First Out)

p2.brand = “HUAWEI”;
就是先到栈内存中找到p2中保存的唯一的地址值
然后根据地址值找到对应的Phone对象,并对其对应的属性值进行修改
p2.eat();
也是先到栈内存中找到p2中保存的唯一的地址值
然后根据地址值找到对应Phone对象,执行Phone对象的eat()方法

创建对象时,内存经历了什么?

1.在栈内存中开辟一块空间,存放引用类型变量p,并把p压入栈底

2.在堆内开辟一块空间,存放Phone对象

3.完成对象的初始化,并赋予默认值

4.给初始化完毕的对象赋予唯一的地址值

5.把地址值交给引用类型变量p保存

2.5 封装

封装是隐藏对象的属性和实现细节,仅仅对外提供公共的访问方式,比如类和方法
好处:

  1. 提高安全性

  2. 提高重用性

    private关键字:是一个权限修饰符 ,可以用来修饰成员变量和成员方法.被私有化的成员只能在本类中访问

2.5.1 封装练习

package cn.tedu.oop;//本类用于测试封装
public class TestPrivate {public static void main(String[] args) {// 4. 创建学生类对象--newStudent s = new Student();// 5. 初步测试学生类对象s// s.eat();//调用s对象的方法s.study();s.sno = 441513;s.name = "程序猿";// s.subject="java培优";//The field Student.subject is not visibleSystem.out.println(s.name);// 调用s对象的name属性,查看它的值System.out.println(s.sno);// System.out.println(s.subject);// 8. 通过student类中提供的get/set方法操作属性值subjects.setSubject("JAVA CGB");// 调用对外公共赋值方式,用set.System.out.println(s.getSubject());// 调用对外提供的公共查看方式,用get.}
}//1.通过关键字class创建 学生类--用来描述学生这一类型--属性+行为
/*** 封装:通过private关键字(权限修饰符 )来修饰成员变量/成员方法 被修饰的成员实现了私有化,访问权限只能在本类中访问*/
class Student {public char[] setSubject;// 2. 定义属性--成员变量String name;// 姓名int sno;// 学号/* private对subject进行了私有化,只能在本class里面使用,外面的main方法就无法访问了 */private String subject;// 科目/** 6. 对外提供公共的属性值设置方式 */public void setSubject(String s) {subject = s;// 将用户设置的变量s赋值给subject}/** 7. 对外提供公共的属性值查看方式 */public String getSubject() {return subject;}// 3. 定义功能--方法public void study() {System.out.println("正在学习JAVA~");}public void eat() {System.out.println("干饭人");}
}
package cn.tedu.oop;//本类用于oop综合练习
public class TestTeacher {// 4.在公共类中,创建入口函数main()方法public static void main(String[] args) {// 5.创建Teacher对象Teacher t = new Teacher();// 6.1设置属性值:对象.set.namet.setName("白小纯");// 6.2打印获取到的属性值:对象.get.nameSystem.out.println(t.getName());}
}//1.创建类
class Teacher {// 2.1提供属性// 2.2对属性进行封装:privateprivate String name;private String gender;// 性别private int age;private double salary;// 薪水// 3. 创建一些自己的功能方法public void ready() {System.out.println("正在备课~");}public void teach() {System.out.println("正在授课~");}// 2.3需要给外界提供公共的属性值设置和获取方法// 快捷键:右键->Source->GT全选public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}
}

类–一类事物的抽象–模版

1.创建类

2.创建类的属性

3.封装类的属性

4.提供get与set方法

5.提供一些本类分功能

创建对象

通过对象的调用方法

1.可以调用set方法设置修改私有属性的值

2.可以调用get方法获取私有属性的值

3.可以调用普通的方法执行对应的功能

新单词

field 字段

visible 可见的

0510课堂笔记--数组-面向对象相关推荐

  1. Hibernate课堂笔记

    Hibernate课堂笔记 Hibernate第一天 一:hibernate的基础知识 Hibernate的整体思想就是"操作对象的过程,就是操作数据库表的过程".如图: 1:Hi ...

  2. 课堂笔记学习java(初级)

      这是有关Java语言基础的,偶这学期专业课开始学习java,希望通过此贴把偶的课堂笔记与大家分享,与初学者共同从零学起,还请各位高手随时指点,引导大家把基础打好,谢谢 .    现在每周两节课,偶 ...

  3. Nodejs课堂笔记02

    第3天课堂笔记 ##1. 知识点 模块系统 核心模块 1. 文件操作的fs 2. http服务的http 3. url 路径操作模块 4. path 路劲处理模块 5. os 操作系统模块 第三方模块 ...

  4. 计算机网络微课堂笔记

    计算机网络 计算机网络微课堂 笔记总结 视频地址:https://www.bilibili.com/video/BV1c4411d7jb 文章目录 计算机网络 第一章 概述 1.1 计算机网络在信息时 ...

  5. 机器学习课堂笔记-作业二基本实现思路

    机器学习课堂笔记-作业二基本实现思路 作业2-年收入判断 项目描述 数据集介绍 项目要求 数据准备 环境配置/安装 事先说明 一.概率生成模型 1. 读取数据 整理训练数据 2. 协方差矩阵计算 手动 ...

  6. 程序设计与算法郭炜老师的课堂笔记2

    程序设计与算法郭炜老师的课堂笔记2 枚举 完美立方 生理周期 称硬币 熄灯问题 递归 求阶乘 汉诺塔 N皇后 逆波兰表达式 表达式求值 上台阶 放苹果 算24 二分算法 找一对数 分治 归并排序 快速 ...

  7. 程序设计与算法郭炜老师的课堂笔记1

    程序设计与算法郭炜老师的课堂笔记1 基础 与或非 位运算 字符串操作库函数 strtok尝试 字符串0新认识 void 指针无定义 快排 变量 排序 Vector vector示例 用**vector ...

  8. 程序设计与算法郭炜老师的课堂笔记3

    程序设计与算法郭炜老师的课堂笔记3 从C到C++ 引用 引用作为函数参数 引用作为函数返回值 常引用 const关键字 定义常量 定义常量指针 定义常引用 动态内存分配 用new开内存 用delete ...

  9. javaweb课堂笔记(一)

    文章目录 javaweb课堂笔记(一) 一.tomcat服务器 二.JSP 1.JSP执行特点 2.JSP语法特点 4.指令 1)page 2)指令 三.表单(登录) 1.表单 2.异常 3.登录界面 ...

最新文章

  1. 那些不回微信的人,都在想什么?
  2. 状态机思路在程序设计中的应用
  3. 知乎回应月饼问题:忽略了麦芽糖或致部分人不耐受,召回所有月饼
  4. SQL UNION 和 UNION ALL 操作符
  5. 图片链接在FireFox下好用,但是在IE下不好用!
  6. Android在Android.mk里添加TAG
  7. 联想m7216更换墨粉流程图_联想M7216打印机加墨粉后还显示墨粉用完是为什么?...
  8. 使用HealthKit过程中遇到的坑
  9. hive on spark报错:Client closed before SASL negotiation finished
  10. html+css罗盘式旋转时钟
  11. h5物体拖动_iH5高级教程:H5交互进阶,拖动物品效果
  12. 关于m3u8转MP4的几种情况
  13. 【泡咖啡1】linux下caffe编译以及python环境配置手记
  14. 微信公众号文章如何排版?
  15. Finance_finacial_engineering
  16. 移动互联网现状:手机人的网上生活
  17. 任鸟飞在线课程之FPS游戏自瞄爆头飞天透视画框
  18. html5实现百度语音播报功能
  19. android AOSP 下载
  20. 部署iwebshop软件

热门文章

  1. Ray --内部运行机制、对象存储中对象的存储和容错
  2. fiery服务器系统安装,fiery服务器打印设置
  3. 用switch,case 输入一个数字,输出相对应的福娃的名字
  4. 比Everything还好用的搜索软件 - listary
  5. docker--扩展学习-网络--原理--16
  6. 叽歪课堂 - Flutter 移动应用开发实战
  7. Linux网络编程入门
  8. 【12月21日】A股滚动市盈率PE历史新低排名
  9. IT运维管理人力成本困境该如何破解?
  10. 吴裕雄--天生自然 诗经:所见