当前位置: 首页 > news >正文

哪里有给网站做360大连seo计费

哪里有给网站做360,大连seo计费,前端课程网站,深圳市宝安区西乡day05 面向对象内存原理和数组 我们在之前已经学习过创建对象了,那么在底层中他是如何运行的。 1.对象内存图 1.1 Java 内存分配 Java 程序在运行时#xff0c;需要在内存中分配空间。为了提高运算效率#xff0c;就对空间进行了不同区域的划分#xff0c;因为每一片区域…day05 面向对象内存原理和数组 我们在之前已经学习过创建对象了,那么在底层中他是如何运行的。 1.对象内存图 1.1 Java 内存分配 Java 程序在运行时需要在内存中分配空间。为了提高运算效率就对空间进行了不同区域的划分因为每一片区域都有特定的处理数据方式和内存管理方式。 Cat cat new Cat();突出了解对于堆栈的学习。 1.2 堆和栈 栈所有局部变量都会在栈内存中创建 局部变量定义在方法中的变量或者方法声明上的变量 方法执行都会加载到栈中进行 局部变量特点随着方法的调用而存在随着方法的调用完毕而消失 代码Student s new Student(); 堆所有对象及其对应的实例变量和数组都将存储在此处 简单理解为new出来的东西都存储在堆内存 每一个new出来的东西都有一个地址值使用完毕会在垃圾回收器空闲时被回收 实例变量(成员变量)有初始化值 基本数据类型整数0浮点数0.0布尔false字符空字符 引用数据类型null 成员变量和局部变量的区别 区别成员变量局部变量类中位置不同类中方法外方法内或者方法声明上内存中位置不同堆内存栈内存生命周期不同随着对象的存在而存在随着对象的消失而消失随着方法的调用而存在随着方法的调用完毕而消失初始化值不同有默认的初始化值没有默认的初始化值必须先定义赋值才能使用 单个对象 指向一个地址多个对象 指向对应数量的多个地址多个引用指向相同 地址可以为同一个1.3 堆-栈内存总结 1.new 对象会创建堆内存 2.声明变量 只创建栈内存 3.多个变量可以指向一个对象 4.局部变量存在栈内存用完就消失作用范围仅限方法或者局部{}范围 5.成员变量会存在堆内存随着对象消失才消失作用范围类范围2.private 是一个权限修饰符 可以修饰成员成员变量和成员方法 作用是保护成员不被别的类使用被 private 修饰的成员在本类中可以通过 实例对象.属性名进行访问。 针对 private 修饰的成员变量如果需要被其他类使用提供两个相应的操作 提供“get变量名()”方法用于获取成员变量的值方法用 public 修饰 提供“set变量名(参数)”方法用于设置成员变量的值方法用 public 修饰 eg: public class Student {private String name;public String getName() {return name; }public void setName(String name) {this.name name;}//被 private 修饰的成员在本类中可以通过实例对象.属性名进行访问public static void main(String[] args) {Student student new Student();System.out.println(student.name);} }public class People {public static void main(String[] args) {Student student new Student();System.out.println(student.name);//报错} }3.this this:方法被哪个对象调用this就代表哪个对象。 ① 什么时候使用this呢 解决局部变量隐藏成员变量 局部变量和成员变量名字一致,局部变量赋值给成员变量。② this限定的变量用于指代成员变量 方法的形参如果与成员变量同名 不带this修饰的变量指的是形参而不是成员变量 方法的形参没有与成员变量同名 不带this修饰的变量指的是成员变量 public class Student { private String name; public String getName() {return name; }public void setName(String name) {this.name name;} }public void setName(String username) {name username;//这里可以不用this}4.封装 1.封装概述 是面向对象三大特征之一封装继承多态 是面向对象编程语言对客观世界的模拟客观世界里成员变量都是隐藏在对象内部的外界是无法直接操作的 eg:相当于把水放在一个水杯中,只能通过水杯出水口喝水。 外界是无法拿到水,只能通过一个公共的出口取水。 2.封装原则 将类的某些信息隐藏在类内部不允许外部程序直接访问而是通过该类提供的方法来实现对隐藏信息的操作和访问 成员变量private提供对应的**getXxx()/setXxx()**方法 3.封装好处 通过方法来控制成员变量的操作提高了代码的安全性 把代码用方法进行封装提高了代码的复用性 规范代码: public class Student {private String name;public String getName() {return name;}public void setName(String name) {this.name name;}private int age;public int getAge() {return age; }public void setAge(int age) {this.age age;} }快捷方式:altinsert 选择getterAndSetter 5.构造方法 5.1 构造方法概述 构造方法是一种特殊的方法 作用创建对象 格式 public class 类名{ 修饰符 类名(参数) { }}功能主要是完成对象数据的初始化 5.2 构造方法的注意事项 ① 构造方法的创建 如果没有定义构造方法系统将给出一个默认的无参数构造方法 如果定义了构造方法系统将不再提供默认的构造方法 ② 构造方法的重载 如果自定义了带参构造方法还要使用无参数构造方法就必须再写一个无参数构造方法 ③ 推荐的使用方式 永远提供无参数构造方法 5.3 JavaBean 就是一个Java中的类其对象可以用于在程序中封装数据 举例学生类手机类 标准 JavaBean 须满足如下要求 1.成员变量使用 private 修饰 2.提供每一个成员变量对应的 setXxx() / getXxx() 3.提供一个无参构造方法 5.4 练习 手机 JavaBean 需求编写手机 JavaBean并在测试类中使用 提示手机有成员变量brand(品牌)和price(价格) 6.数组 数组概述 为了存储一个学员的考试成绩我们可以采用一个变量进行存储如果我有很多个学员的考试成绩我们也可以用多个变量进行存储。但是如果学员人数太多这样定义变量就太麻烦了这就对我们存储数据提出了新的诉求一次性声明大量的用于存储数据的变量要存储的数据通常都是同类型数据例如考试成绩。满足这种诉求的东西是什么呢就是我们接下来要讲解的数组。来我们说一下什么是数组。 int a 100int b 100int c 100int d 100int e 100int f 100int g 100… … 一次性声明大量的用于存储数据的变量 要存储的数据通常都是同类型数据 例如考试成绩int[] scores {100,100,100,100,100,100,100…}; 什么是数组 数组(array)是一种用于存储多个相同数据类型的存储模型(可以理解为容器) 1.数组定义格式 格式1数据类型[] 变量名; 范例 int[] arr; 定义了一个int类型的数组数组名是arr 格式2数据类型 变量名**[]; 范例 int arr[]**; 定义了一个int类型的变量变量名是arr数组 推荐使用格式1 2.数组初始化概述 静态初始化 动态初始化 2.1.数组初始化之静态初始化 静态初始化初始化时指定每个数组元素的初始值由系统决定数组长度 格式数据类型[] 变量名 new 数据类型[]{数据1,数据2,数据3,…};范例int[] arr new int[]{1,2,3}; 简化格式数据类型[] 变量名 {数据1,数据2,数据3,…};范例int[] arr {1,2,3}; 2.2 数组初始化之动态初始化 动态初始化初始化时只指定数组长度由系统为数组分配初始值 格式数据类型[] 变量名 new 数据类型[数组长度];范例int[] arr new int[3]; 使用场景 静态初始化开始就存入元素值适合一开始就能确定元素值的业务场景 动态初始化指定数组长度后期赋值适合开始知道数据的数量但是不确定具体元素值的业务场景 注意两种初始化的方式是独立的不可以混用 int[] arr new int[3]{30,40,50}; //错2.3 数组元素来自键盘录入 需求定义一个可以存储5个元素的int数组数据来自于键盘录入最后遍历数组把元素输出在控制台分析 ① 数组长度可知元素未知采用动态初始化 ② 键盘录入使用Scanner实现eg: public static void main(String[] args) {int[]arr new int[5];Scanner sc new Scanner(System.in);for (int j 0; j 5; j) {System.out.println(请输入第 (j1) 个数);arr[j] sc.nextInt();}printArray(arr);}public static void printArray(int[] arr) {System.out.print([);for (int i 0; i arr.length; i) {if(iarr.length-1) {System.out.print(arr[i]);}else {System.out.print(arr[i] , );}}System.out.println(]);}3.数组元素访问 3.1 数组变量访问方式 格式数组名3.2 数组内部保存的数据的访问方式 格式数组名[索引]3.3 索引是数组中数据的编号方式 作用索引用于访问数组中的数据使用数组名[索引]等同于变量名是一种特殊的变量名 特征①索引从0开始 特征②索引是连续的 特征③索引逐一增加每次加1 4.数组常见操作 4.1遍历 什么是数组遍历 获取数组中的每一个元素我们可以把获取到的元素输出在控制台 获取数组长度(元素个数) 格式数组名.length范例arr.length 数组遍历通用格式 int[] arr {...}; for (int i 0; i arr.length; i) { arr[i]; //对元素arr[i]进行操作 }注意数组遍历指的是把数组中的元素取出来取出来之后可以(打印求和判断…) 4.2 获取最大值 获取数组中最大值 public static void main(String[] args) {//定义数组int[] arr {12, 45, 98, 73, 60};//定义变量max存储最大值取第一个数据为变量的初始值int max arr[0];//与数组中剩余数据逐个比对每次比对将最大值保存到变量max中for (int i1; iarr.length; i) {if(arr[i] max) {max arr[i];}}//循环结束后输出变量max的值System.out.println(max: max);}4.3 元素打乱 把数组中的元素随机交换位置每次运行都可能产生不一样的结果 比如arr {12, 45, 98, 73, 60}; 遍历 正常情况下12,45,98,73,60 元素打乱后45,73,12,60,98 涉及到的操作 获取数组中元素的随机索引 Random r new Random(); int index r.nextInt(arr.length);数组中元素交换 int a 10; int b 20; int temp a; a b; b temp; System.out.println(a); System.out.println(b);元素打乱案例 public static void main(String[] args) {//定义数组int[] arr {12, 45, 98, 73, 60};// Random r new Random(); // int index r.nextInt(arr.length); // // //第一次交换 // int temp arr[0]; // arr[0] arr[index]; // arr[index] temp; // // //第二次交换 // index r.nextInt(arr.length); // temp arr[1]; // arr[1] arr[index]; // arr[index] temp;Random r new Random();for (int i 0; i arr.length; i) {int index r.nextInt(arr.length);int temp arr[i];arr[i] arr[index];arr[index] temp;}//遍历数组for (int i 0; i arr.length; i) {System.out.println(arr[i]);}}5.思考问题数组常见问题 请问下列代码有问题吗 int[] arr new int[3];//输出元素 System.out.println(arr[3]);如果有是什么问题 如何解决 有问题访问了不存在的索引位置元素修改不存在的索引为正确的索引。范围(0~数组长度-1) int[] arr new int[3]; System.out.println(arr[2]);//把 null赋值给数组 arr null;// 输出元素 System.out.println(arr[0]);数组使用中的两个小问题1索引越界访问了数组中不存在的索引对应的元素造成索引越界问题ArrayIndexOutOfBoundsException2空指针异常对象不再指向堆内存还想继续访问数据访问失败NullPointerExceptionnull空值引用数据类型的默认值表示不指向任何有效对象6.二维数组(自学作业) 需求我们要存储多个班级的学生的考试成绩该怎么办呢 如果要存储一个班级中多个学生的考试成绩我们就可以采用数组来存储。 多个班级的考试成绩我们针对每个班级都采用数组存储 第一个班级数组1 第二个班级数组2 第三个班级数组3 … 但是多个班级也可以采用数组存储啊所以Java就提供了二维数组供我们使用 6.1二维数组概述 二维数组元素为一维数组的数组 定义格式 数据类型[][] 变量名; int[][] arr;//重点 数据类型 变量名[][]; int arr[][]; 数据类型[] 变量名[]; int[] arr[];6.2二维数组初始化 6.21静态初始化 1.格式 数据类型[][] 变量名 new 数据类型[][]{{元素…},{元素…},{元素…},…};2.范例 int[][] arr new int[][]{{1,2,3},{4,5,6},{7,8,9}};3.解读 定义了一个二维数组 二维数组中有三个元素(一维数组) 每一个一维数组有三个元素(int类型数据)4.注意一维数组中元素的个数可以是不同的 举例 int[][] arr new int[][]{{1,2,3},{4,5},{6,7,8,9}};5.简化格式 数据类型[][] 变量名 {{元素…},{元素…},{元素…},…};6.范例 int[][] arr {{1,2,3},{4,5,6},{7,8,9}};6.22 动态初始化 1.格式 数据类型[][] 变量名 new 数据类型[m][n];2.范例 int[][] arr new int[2][3];3.解读 定义了一个二维数组 二维数组中有2个元素(一维数组) 每一个一维数组有3个元素(int类型数据)6.23 二维数组元素访问 获取二维数组数组名 获取每一个一维数组数组名[索引] 从0开始 获取每一个二维数组元素数组名[索引][索引] 从0开始6.24 二维数组常见操作 遍历元素打乱 1.二维数组遍历 需求已知一个二维数组 arr {{1,2,3},{4,5,6},{7,8,9}}; 请把元素在控制台输出 二维数组中循环嵌套的使用 ① 循环嵌套循环语句中嵌套循环语句 ② 外层循环得到一维数组 ③ 内存循环得到每一个二维数组元素public static void main(String[] args) {int[][]arr {{1,2,3},{4,5,6},{7,8,9}};for (int i 0; i arr.length; i) {for (int j 0; j arr.length; j) {System.out.println(arr[i][j]);}}}2.二维数组元素打乱 需求已知二维数组 arr {{1,2,3},{4,5,6},{7,8,9}}; 用程序实现把数组中的元素打乱,并在控制台输出打乱后的数组元素public static void main(String[] args) {int[][]arr {{1,2,3},{4,5,6},{7,8,9}};Random r new Random();for (int i 0; i arr.length; i) {for (int j 0; j arr.length; j) {//arr[i][j]int a r.nextInt(arr.length);int b r.nextInt(arr.length);//元素交换int temp arr[i][j];arr[i][j] arr[a][b];arr[a][b] temp;}}for (int i 0; i arr.length; i) {for (int j 0; j arr.length; j) {System.out.print(arr[i][j] );}}}int[][]arr {{1,2,3},{4,5,6},{7,8,9}};Random r new Random();for (int i 0; i arr.length; i) {for (int j 0; j arr.length; j) {//arr[i][j]int a r.nextInt(arr.length);int b r.nextInt(arr.length);//元素交换int temp arr[i][j];arr[i][j] arr[a][b];arr[a][b] temp;}}for (int i 0; i arr.length; i) {for (int j 0; j arr.length; j) {System.out.print(arr[i][j] );}} }
http://www.hkea.cn/news/14328786/

相关文章:

  • 做网站和seo流程wordpress数据库二次开发
  • 天津房地产网站建设dedecms 网站地图模板
  • 个人博客网站制作流程微信公众号直接同步到wordpress
  • 计算机做网站难吗省住房城乡建设厅网站
  • 网站开发怎么挣钱设计师每天都上的网站
  • 五河网站建设哪家好返利网 网站建设费用
  • 夸克破解可看禁用网站学网站建设 赚钱
  • 分销平台网站建设电子商务网站建设与管理 教案
  • 百度收录网站标题中国工业设计公司排名前十强
  • 长乐住房和城乡建设局网站wordpress文章伪静态
  • 做调查问卷的网站淮安网站开发
  • win2008系统asp网站建设免费建站哪家有
  • 昆明网站建设logovi做网站wamp和xamp
  • 网站开发框架 c闲置物品交易网站怎么做
  • 厦门茶叶公司 网站建设凡科建站登录入口官方正版
  • 又做投资的网站吗网页设计培训心得体会
  • 做咖啡网站高德地图怎么看邮编
  • tool站长工具项目代理
  • 柳州企业网站制作哪家好电子商务网站建设项目范围
  • 买衣服网站排名自助建站最大
  • 专教做蛋糕的网站手机上的编程软件
  • 关键字查询我的网站怎么做宿迁房产网租房信息
  • 建设宠物网站的可行性芭蕉视频app无限次数
  • 临沂网站建设联系方式国内h5网站欣赏
  • 服务器不稳定 如何让百度重新收录网站开发个dapp要多少钱
  • 江苏国龙翔建设网站网页设计评价
  • 做mla网站企业手机网站建设策划
  • 微信公众号做微网站吗做网站小程序多少钱
  • asp建设网站需要了解什么建网站衡水哪家强?
  • 网站网站到底怎么做服装外贸公司大量订单外发