java基础第四讲——数组、字符串、类与对象(构造器)
来源:互联网 发布:银行卡js验证规则 编辑:程序博客网 时间:2024/06/14 01:44
目录
数组
字符串
类与对象
数组
一维数组
冒泡排序
多维数组
定义:一组相同的数据构成的数据
一维数组
数组的声明:
数据类型 变量名;
int[] array1 = new int[大小];
初始化赋值 int [] array2 = { };
// 数组的定义及初始化赋值的测试 public static void shuZuTest() { // 数组的定义及初始化赋值 int[] array1 = new int[10]; array1[0] = 10; int[] array2 = { 0, 1, 2, 3 };// 静态初始化 System.out.println(array2[2]); // 通过for循环遍历数组 for (int i = 0; i < array2.length; i++) { System.out.print(array2[i] + " "); } } // 键盘输入数据计算总分平均分 public static void averageGrade() { Scanner scanner = new Scanner(System.in); double[] score = new double[5]; double sum = 0; for (int i = 0; i < score.length; i++) { score[i] = scanner.nextDouble(); sum += score[i]; } System.out.println("总分:" + sum); System.out.println("平均分:" + sum / score.length); } // 就输入数据的最大值 public static void maxGrade() { Scanner scanner = new Scanner(System.in); double[] score = new double[5]; double max = 0; for (int i = 0; i < score.length; i++) { score[i] = scanner.nextDouble(); if (score[i] > max) { max = score[i]; } } System.out.println(max); } // 复制数组 public static void arrayTest() { int[] score = { 52, 75, 73, 42, 36, 92 }; // 通过Arrays.copyOfRange(original, from, to)复制数组. // 包前不包后,Arrays.copyOfRange()返回的是一个数组 int[] array = Arrays.copyOfRange(score, 2, 5); for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); // 通过System.arraycopy(src, srcPos, dest, destPos, length);复制数组 // src源数组,srcPos源数组起始位置, dest复制后数组, destPos复制后数组起始位置, length复制长度 int[] array2 = new int[10]; System.arraycopy(score, 2, array2, 3, 4); for (int i = 0; i < array2.length; i++) { System.out.print(array2[i] + " "); } } // 课堂训练 // 随机10个两位数,然后从小到大排列 public static void train1() { Random random = new Random(); int[] array = new int[10]; int a = 0; for (int i = 0; i < array.length; i++) { array[i] = random.nextInt(90) + 10; } // Array的方法 // Arrays.sort(array); // 冒泡算法 for (int j = 0; j < array.length - 1; j++) { for (int j2 = 0; j2 < array.length - 1 - j; j2++) { if (array[j2] > array[j2 + 1]) { a = array[j2]; array[j2] = array[j2 + 1]; array[j2 + 1] = a; } } } for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } }
冒泡排序
N个数字来排队
外层循环N-1
内层循环N-1-i
也可用Arrays中的sort()方法排序
// 冒泡排序 public static void paiXu() { int[] score = { 52, 75, 73, 42, 36, 92 }; int m = 0;// 引入中间变量 for (int i = 0; i < score.length - 1; i++) { // 循环嵌套,注意内循环的循环条件 for (int j = 0; j < score.length - i - 1; j++) { if (score[j] > score[j + 1]) { // 通过中间变量进行两个值的排序 m = score[j + 1]; score[j + 1] = score[j]; score[j] = m; } } } //Arrays.sort(score);// 通过Array中的sort升序排序 // 重新打印一遍 for (int i = 0; i < score.length; i++) { System.out.println(score[i]); } }
多维数组(以二维数组为例)
int[][] array = new int[第一行大小][]
int[][] array = {{},{},{}…};
// 多维数组的定义及赋值测试 public static void duoWeiShuZu() { int[][] array1 = new int[3][4]; array1[0] = new int[] { 2, 3, 1, 0 }; System.out.println(array1[1][2]);// 输出null int[][] array2 = { { 1, 2, 4, 5 }, { 2, 4, 5 }, { 5, 2, 8, 2 }, { 1, 6 } }; System.out.println(array2[2][1]); } // 随机4行4列的矩阵到一个二维数组里,求出主对角线元素的乘积以及副对角线元素的乘积 public static void train2() { Random random = new Random(); int[][] array = new int[4][4]; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length; j++) { array[i][j] = random.nextInt(100); } } int m1 = 1; int m2 = 1; // 打印矩阵 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length; j++) { System.out.print(array[i][j] + "\t");// 每循环完一行就会制表 } System.out.println(Arrays.toString(array[i]));// 通过toString方法将array的每一行打印出来 } // 计算主对角线及副对角线的乘积 for (int i = 0; i < array.length; i++) { m1 *= array[i][i]; m2 *= array[i][array.length - i - 1]; } System.out.println("主对角线的乘积:" + m1); System.out.println("副对角线的乘积:" + m2); }
字符串
// 字符串的定义及赋值 public static void stringTest() { String s1 = "abd"; String s2 = "dss"; s1 = s1.concat(s2);// 在s1后面连接s2 System.out.println(s1); } // 键盘输入信息,计算其长度 public static void CountLength() { Scanner scanner = new Scanner(System.in); String words = scanner.next(); System.out.println(words.length()); } // 大小写互换 public static void dXHuhuan() { String s = "adsfDFOJHdjf"; String s1 = ""; for (int i = 0; i < s.length(); i++) { char a = s.charAt(i); // 调用Character方法判断大小写并反转。 if (Character.isLowerCase(a)) { a = Character.toUpperCase(a); } else if (Character.isUpperCase(a)) { a = Character.toLowerCase(a); } else { System.out.println(i + "此处不为英文字母"); break; } s1 = s1 + a;// 连接符,将得到的char型连接到s1上。 } System.out.println(s1); } // 判断是否为邮箱 xxxxx@xxx.com .cn .net // 不用正则表达式 public static void isEmail() { Scanner scanner = new Scanner(System.in); String email = scanner.next(); if (email.contains("@")) {// 判断是不是含有“@” int index = email.indexOf('@'); boolean IsLetterOrNumber = true; String start = email.substring(0, index); for (int i = 0; i < start.length(); i++) {// 将前边的一段遍历查看是不是有不是字母和数字的 char c = start.charAt(i); if (!Character.isLetterOrDigit(c)) {// 如果不是跳出 IsLetterOrNumber = false; break; } } if (IsLetterOrNumber) { if (email.contains(".")) {// 判断是不是有“.” int index1 = email.lastIndexOf('.');// 最后一次出现'.'的索引 String next = email.substring((index) + 1, index1); for (int j = 0; j < next.length(); j++) {// 遍历中间一段是不是有不是字母和数字的 char b = next.charAt(j); if (!Character.isLetterOrDigit(b)) {// 如果不是跳出 IsLetterOrNumber = false; break; } } if (IsLetterOrNumber) { // 判断最后是不是以.com或.cn或.net结尾 if (email.endsWith(".com") || email.endsWith(".cn") || email.endsWith(".net")) { System.out.println(email + "这是一个邮箱"); } else { System.out.println("里边没有.com或.cn或.net,故不是一个邮箱"); } } else { System.out.println(next + "里边不只有数字和字母"); } } else { System.out.println("里边没有‘.’故不是邮箱"); } } else { System.out.println(start + "里边不只有数字和字母"); } } else { System.out.println("不包含@,所以不是邮箱"); } }
类与对象
类中只包含:
构造器
属性
方法:首字母小写
package com.pb.classtest;/** * 汽车类 * 里边有2个构造器,一个无参,一个有参 * 2个属性 * 2个方法 * @author Administrator * */public class Car { //构造器 //默认构造器 public Car(){ } //有参构造器,若只有有参构造器,系统会将默认构造器屏蔽,可以自己写 public Car(String color){ this.color = color; } //属性[访问修饰符][属性类型] 属性名称 可以赋初始值 public String color; public String brand; //[访问修饰符][返回类型,如果没有用void][方法名称](参数类型 参数名){方法体} public void runing() { System.out.println("汽车正在跑..."); } public String gps(String gpsname) { System.out.println("正在导航..."+gpsname); return "不要着急"; }}package com.pb.classtest;/** * 创建一个学生类 * 里边包括4个属性5个方法,其中两个为Set,Get方法 * * @author Administrator * */public class Student { private String name; private String number; private char sex; private String live; public void study(String major) { System.out.println(getName() + "正在学习" + major); } public void eat() { System.out.println("正在吃饭..."); } public String sleeping() { return getName() + "在" + live + "公寓睡觉"; } public String getName() { return name; } public void setName(String name) { this.name = name; }}//测试类,用于测试个各类package com.pb.classtest;public class Test { public static void main(String[] args) { Car car = new Car("红色"); car.runing(); String s = car.gps("北斗"); System.out.println(car.color); }}
0 0
- java基础第四讲——数组、字符串、类与对象(构造器)
- 第四讲:类与对象
- JAVA核心技术 第四章 对象与类 对象构造 重载
- 【java基础】——java面向对象(上)—面向对象、类与对象、封装、构造函数等
- Java——第四章(数组和字符串)--数组
- Java——第四章(数组和字符串)--字符串
- 韩顺平 java 第五讲第六讲第七讲 类与对象 成员方法 构造方法
- Java基础第四讲
- java基础 类与对象 构造器 static
- java基础第四天——数组
- OC基础第四讲): NSString , NSArray , NSNumber 便利构造器
- Java基础:第二十四讲 类与对象的关系
- Java基础:第二十四讲 类与对象的关系
- java基础(二)------数组与字符串
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- 【Java基础】字符串与数组
- Java基础复习---对象构造(构造器)
- Java基础<五>---> 面向对象与类(匿名对象、构造函数、this、静态等)
- Python函数大全
- session生命周期
- 01_js中常用的设计模式
- (转)STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- thrift安装过程中遇到的错误
- java基础第四讲——数组、字符串、类与对象(构造器)
- sockaddr和sockaddr_in的区别 http://blog.csdn.net/joeblackzqq/article/details/8258693
- 2015-7-30---------单词
- 夫妻吵架也要有技巧!
- HDU 5335 Walk Out 状压DP乱搞
- IOS ----- 程序启动过程
- 如何实现单链表任意两个元素交换(不包括表头)
- meta 标签
- Centos7/linux Dsl无法联网,帐号密码都正确,解决方法