javaSE第六天
第六天
1. 二维数组(理解)
(1)就是元素为一维数组的一个数组。
(2)格式:
A:数据类型[][] 数组名 = new 数据类型[m][n];
B:数据类型[][] 数组名 = new 数据类型[m][];
C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
D:数据类型[][] 数组名 = {{...},{...},{...}};
参数:m : 表示这个二维数组有多少个一维数组
n : 表示每一个一维数组的元素有多少个
(3)案例(掌握):
A:二维数组的遍历
说明:二维数组外循环控制的是二维数组的长度,其实就是一维数组的个数。
内循环控制的是一维数组的长度
代码:
public static void printArray2(int[][] arr) { for (int x = 0; x < arr.length; x++) { for (int y = 0; y < arr[x].length; y++) { System.out.print(arr[x][y] + " "); } System.out.println(); } } |
B:二维数组的求和
/* * 需求:二维数组求和 */ class Array2Test2 { public static void main(String[] args) { // 把题目的数据用二维数组来表示 int[][] arr = { { 22, 66, 44 }, { 77, 33, 88 }, { 25, 45, 65 }, { 11, 66, 99 } };
。 int sum = 0;
// 通过遍历就可以得到每一个二维数组的元素。 for (int x = 0; x < arr.length; x++) { for (int y = 0; y < arr[x].length; y++) { // 把元素累加即可。 sum += arr[x][y]; } }
// 最后输出sum,就是结果。 System.out.println("总和为:" + sum ); } } |
C:杨辉三角形
(不要想着一个循环就可以搞定,应该分为多个循环一步一步的处理)
/*
需求:打印杨辉三角形(行数可以键盘录入)
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
分析:看这种图像的规律 B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。
步骤: A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。 这个n的数据来自于键盘录入。 C:按照规律给其他元素赋值 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 D:遍历这个二维数组。 */ import java.util.Scanner;
class Array2Test3 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in);
//这个n的数据来自于键盘录入。 System.out.println("请输入一个数据:"); int n = sc.nextInt();
//定义二维数组 int[][] arr = new int[n][n];
for(int x=0; x<arr.length; x++) { 列 列 }
//按照规律给其他元素赋值 //从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 for(int x=2; x<arr.length; x++) { //这里如果y<=x是有个小问题的,就是最后一列的问题 开始,因为第一列也是有值了 for(int y=1; y<=x-1; y++) { //每一个数据是它上一行的前一列和它上一行的本列之和。 arr[x][y] = arr[x-1][y-1] + arr[x-1][y]; } }
//这个时候,要注意了,内循环的变化必须和曾经讲过的九九乘法表类似 for(int x=0; x<arr.length; x++) { for(int y=0; y<=x; y++) { System.out.print(arr[x][y]+"\t"); } System.out.println(); } } } |
2. 两个思考题(理解)
(1)Java中的参数传递问题
Java中只有值传递。
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
(2)数据加密问题
综合的小案例。(我没有做出来,是一个比较好的综合练习)
/* 位的整数,为了确保安全, 在传递过程中需要加密,加密规则如下: ,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 然后,把加密后的结果在控制台打印出来。
题目要求: 位的整数 定义一个int类型的数据 int number = 123456; B:加密规则 a:首先将数据倒序 ,再用和除以10的余数代替该数字 c:最后将第一位和最后一位数字交换 C:把加密后的结果输出在控制台
通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。 不是直接写成这个样子的: int[] arr = {1,2,3,4,5,6};
如何把数据转成数组呢? A:定义一个数据 int number = 123456; B:定义一个数组,这个时候问题就来了,数组的长度是多少呢? 在赋值的时候,我用一个变量记录索引的变化。 int index = 0; C:获取每一个数据 int ge = number%10 int shi = number/10%10 int bai = number/10/10%10
arr[index] = ge; index++; arr[index] = shi; index++; arr[index] = bai; ... */ class JiaMiDemo { public static void main(String[] args) { //定义一个数据 int number = 123456;
//定义一个数组 int[] arr = new int[8];
//把数据中每一位上的数据获取到后存储到数组中 /* int index = 0; arr[index] = number%10; //arr[0]=6; index++; arr[index] = number/10%10; //arr[1]=5; index++; arr[index] = mumber/10/10%10; //arr[2]=4; */
//通过观察这个代码,我们发现应该是可以通过循环改进的 int index = 0;
while(number > 0) { //number=123456,number=12345,number=1234,number=123,number=12,number=1,number=0 arr[index] = number%10; //arr[0]=6,arr[1]=5,arr[2]=4,arr[3]=3,arr[4]=2,arr[5]=1 index++;//index=1,index=2,index=3,index=4,index=5,index=6 number/=10;//number=12345,number=1234,number=123,number=12,number=1,number=0 }
,再用和除以10的余数代替该数字 for(int x=0; x<index; x++) { arr[x] += 5; arr[x] %= 10; }
//最后将第一位和最后一位数字交换 int temp = arr[0]; arr[0] = arr[index-1]; arr[index-1] = temp;
//输出数据 for(int x=0; x<index; x++) { System.out.print(arr[x]); } System.out.println(); } } |
3. 面向对象(掌握)
(1)面向对象
面向对象是基于面向过程的编程思想
(2)面向对象的思想特点
A:是一种更符合我们思考习惯的思想
B:把复杂的事情简单化
C:让我们从执行者变成了指挥者
举例:
买电脑
洗衣服
做饭
...
万事万物皆对象
(3)把大象装进冰箱(理解)
A:面向过程实现
B:面向对象实现
注意:如何让我们的操作更符合面向对象思想呢?
A:有哪些类
B:每个类有哪些成员
C:类与类的关系
(4)类与对象
A:现实世界的事物
属性 事物的基本描述
行为 事物的功能
B:Java语言中最基本的单位是类。所以,我们要用类来体现事物
C:类
成员变量 事物属性
成员方法 事物行为
D:类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体存在,是一个具体的实例。(对象)
举例:
学生:类
班长:对象
(5)类的定义及使用
A:类的定义
成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。
成员方法 定义格式和以前一样,就是去掉了static。
B:使用类的内容
a:创建对象? 格式
类名 对象名 = new 类名();
b:如何使用成员变量和成员方法呢
对象名.成员变量
对象名.成员方法()
(6)案例:
A:学生类的定义和使用
B:手机类的定义和使用
(7)内存图
A:一个对象的内存图
B:二个对象的内存图
C:三个对象的内存图
(8)Java程序的开发,设计和特征
A:开发:就是不断的创建对象,通过对象调用功能
B:设计:就是管理和维护对象间的关系
C:特征
a:封装(encapsulation)
b:继承(inheritance)
c:多态(polymorphism)
javaSE第六天的更多相关文章
- 互联网轻量级框架SSM-查缺补漏第六天【级联+延迟加载特辑】
简言:本来这是昨天看的,但是因为想好好写一下[级联]这个东西,所以就看完之后今天来整理一下. 级联 1. 什么是级联 级联是一个数据库实体的概念.比如教师就需要存在学生与之对应,这样就有教师学生表,一 ...
- 用大白话聊聊JavaSE -- 如何理解Java Bean(一)
首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- 用大白话聊聊JavaSE -- 自定义注解入门
注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原因: 1. 可以更深层次地学习Java,理解Java的思想. 2. 有了注解的基础,能够方便阅读各种框架的源码,比如 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
随机推荐
- 30天轻松学习javaweb_https协议的密码学
https通过非对称加密实现数据安全1.CA机构提供数字证书,其中数字证书包含公钥.2.浏览器自带功能验证数字证书是否是CA机构颁发的.3.根据数字证书包含的公钥对表单数据进行加密.4.公钥提供方再根 ...
- ubuntu 格式化U盘,并制作系统镜像
1. 先要卸载U盘,使用如下命令: #umount /dev/sdb1 注意:/dev/后面的设备要根据你的实际情况而定,否则后面格式化,丢失数据!! 格式化U盘,并建立vfat文件系统 #mkfs. ...
- 跨域请求 & jsonp
0 什么是跨域请求 在一个域名下请求另外一个域名下的资源,就是跨域请求.example 1:比如:我当前的域名是http://che.pingan.com.我现在要去请求http://www.cnbl ...
- JSON.stringify()的使用--将string转换成json
===========================================================1. ====JSON.stringify()================== ...
- expdp impdp终极教学
源地址:http://blog.csdn.net/giianhui/article/details/7788550
- 把Nginx加为系统服务(service nginx start/stop/restart)
1.编写脚本,名为nginx #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - ...
- java小程序 实例 二分法查找
使用二分法在一个数组中查找一个数: package com.test; public class BinaryFind { private final static int size = 500000 ...
- JDBC中的事务-Transaction
事务-Transaction 某些情况下我们希望对数据库的某一操作要么整体成功,要么整体失败,经典的例子就是支付宝提现.例如我们发起了支付宝到银行卡的100元提现申请,我们希望的结果是支付宝余额减少1 ...
- Java SE 第九讲---面向对象特征之封装1
1.面向对象程序设计的三大基本特征:继承(Inheritence).封装(Encapsulation).多态(Polymorphism) 2.封装:类包含数据与方法,将数据与方法放在一个类中就构成了封 ...
- java代码中后台向前台传递list或map集合案例
导入jar包 新建一个servert传递map集合 ajax.java代码: package servlet; import java.io.IOException; import java.io.P ...