java面向对象基础知识04

embedded/2024/11/17 1:01:36/

数组

1.数组的声明(只创建了引用名,未创建数组对象)

int[] a; Student [] s;

 2.数组元素的初始化

int[] a={1,2,3}; int [] b=new int[4];
Student [] s=new Student[3]; s[0]=new Student();

 3.数组变量的length属性

a.length int [][] a=new int[3][]; a[0]=new int[5]; a[0].length

 4.数组的遍历(两种方式:forfor-each

int[] a = {1,2,3,4,5};
for(int num:a){
System.out.println(num);
}

5.数组常见错误

(1)数组越界,int[] a = new int[3];//a[3]

  (2)变量声明时指明元素数组个数//int[3] x; int[3][] a;int[3][4] b;int[3] z = {1,2,3},动态数组

(3)多维数组的创建错误,例如:int[][] x = new int[][3]

 6.示例杨辉三角

java">        int[][] arr = new int[10][];for (int i = 0; i < arr.length; i++) {arr[i] = new int[i+1];//动态数组分配空间arr[i][0] = arr[i][i] = 1;for (int j = 1; j < i; j++) {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + " ");}System.out.println();}

 字符串

1.字符串介绍

是由字符组成的串/序列,属 class,类型标识:String 如:"abc"、"abc\n,鉴于字符串字面量使用频率非常频繁,Java 将字符字面量存放于常量池中。在大多数情况下能够带来内存优化和性能提升的好处。

2.常见运算

(1)==和equals()

==对于一般的数据类型是比较值是否相等,对于引用类型则是判断是否是两个相同的对象;

equals()常常在子类中重写用来判断值是否相等。

String s1,s2,s3,s4;
s1="abc"; s2="abc";
s3=new String("abc"); s4=new String("abc");
s1==s2 s1.equals(s2) s1.equals(s3) 为真
s1和s2没有创建对象比较的是值,s3==s4为假
(2)连接运算+

String s1="abcd"+1+2+3; //s1 的值是"abcd123"

String s2=1+2+3+"abcd"; //s2 的值是"6abcd"

String s3=1+true+"abcd"; //编译错,why?

  • 在 Java 中,+ 运算符有两种作用:一是用于数值类型的加法运算,二是用于字符串的拼接操作。
  • 对于数值类型,+ 要求操作数必须是数值类型,如 intdouble 等,而不能是布尔类型。在表达式 1 + true 中,1int 类型,true 是布尔类型,这两种数据类型不支持直接使用 + 运算符进行相加操作,因此会导致编译错误。
  • 即使 1 + true是合法的也不能完成字符串的拼接,因为只有当 + 运算符的一个操作数是字符串类型时,才会将其他操作数转换为字符串并进行拼接。

 3.字符串变量.方法()

String str = "abc";
int n = str.length(); //n 获得 str 的长度 char ch = str.charAt(0); //ch 获得 str 的第 1 个字符 'a‘
String sub=str.substring(0,1); //sub 获得 str 的字串“ a”
String.format(“%9.2f”,12.3); // 9 位宽度 2 位小数形式输出浮点数“

4.注意事项

(1)null 和空串("")不同;

"A"'A'是截然不同的两个数据。

字符数组和字符串不同,字符数组也无'\0'结束标志

String 对象是只读的,即 String 的内容从不改变。

工具的使用

1.日期时间相关类

(随用随查),这里不做介绍

可以看看这篇博客:

http://【Java中的日期时间类详解(Date、DateFormat、Calendar) - CSDN App】https://blog.csdn.net/weixin_65752158/article/details/140182763?sharetype=blog&shareId=140182763&sharerefer=APP&sharesource=2302_79648928&sharefrom=link

2.随机数类:java.util.Random

Random r= new Random();

int b = r.nextInt(10);//0<=b<=10

double c = r.nextDouble();//0<c<1.0

 3.示例产生5位随机验证码

java"> // 首先创建一个Random对象来生成随机数。// 然后通过random.nextInt(90000)生成一个 0 到 89999 之间的随机数,// 再加上 10000,确保得到一个五a位数的随机数。最后将这个随机数打印出来Random a = new Random();int randomNumber = a.nextInt(90000) + 10000;System.out.println("5 位随机验证码:" + randomNumber);

面向对象程序设计基础

1.面向对象和面向过程

(1)结构化程序设计

核心思想:以功能为核心,系统是功能模块的组装

结构化:将问题求解看作功能模块,模块可拆解可组合

 (2)面向对象将软件系统视为现实世界(需求)的仿真。现实世界由一组对象组成,系统的功能表现为一组对象间的交互。

2.类和对象

(1)类(class

是既包括数据又包括作用于数据的一组操作的封装体

(2)类的封装性、继承性和多态性

类的封装性

为类的成员提供公有、缺省、保护和私有等多级访问权限,目的有隐藏类中的私有的

成员和类中方法的实现细节。

 类的继承性

提供从已存在的类创建新类的机制,继承使一个新类自动拥有被继承类的全部成员。

被继承类称为父类,通过继承产生的新类称为子类。

类的多态性:重载和重写

(3)类的定义和使用
声明类
语法: [ 修饰符 ] class < 泛型 > [extends 父类 ] [implements 接口列表 ]
{
成员变量的声明 ;
成员方法的声明及实现 ;
}
1. 成员变量的声明
如: public class Date1
// 类声明
{
int year, month, day;
// 声明成员变量
}
2. 成员方法的声明及实现
语法: [ 修饰符 ] 返回值类型 方法 ([ 参数列表 ]) [throws 异常类 ]
{
语句序列 ;
[return [ 返回值 ]];
}
例如: public class Date1

http://www.ppmy.cn/embedded/138139.html

相关文章

脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾

这一轮硬件创新由 AI 引爆&#xff0c;或许最大受益者仍是 AI&#xff0c;因为只有硬件才能为 AI 直接获取最真实世界的数据。 在人工智能与硬件融合的新时代&#xff0c;实时互动技术正迎来前所未有的创新浪潮。从嵌入式系统到混合现实&#xff0c;从空间视频到脑机接口&…

HarmonyOs DevEco Studio小技巧31--画布组件Canvas

那天我们用画布实现了文字颜色的渐变&#xff0c;实际上画布还有很多好玩的功能&#xff0c;接下来让我们一起试一下画布怎么玩 Canvas 提供画布组件&#xff0c;用于自定义绘制图形。 接口 Canvas Canvas(context?: CanvasRenderingContext2D | DrawingRenderingContext…

说说TCP传输的三次握手四次挥手策略

TCP&#xff08;传输控制协议&#xff09;是一个面向连接、可靠的传输层协议。在建立和关闭连接时&#xff0c;TCP使用“三次握手”和“四次挥手”机制来确保可靠的通信。下面我们详细讲解这两个过程&#xff1a; 一、三次握手&#xff08;TCP连接建立&#xff09; 三次握手是…

我的docker随笔45:在龙芯平台安装docker

本文介绍在龙芯平台安装docker。 前言 2017年下半年开始接触docker时&#xff0c;那会李大锤刚刚会爬&#xff0c;而今年&#xff08;2024年&#xff09;下半年&#xff0c;李大锤已经是一个经常考得C并且经常和妹妹吵架的二年级学生了。这么多年就过去&#xff0c;docker一直…

Rust 数据类型

Rust 数据类型 Rust 是一种系统编程语言,以其内存安全性、速度和并发性而闻名。Rust 的设计理念是“零成本抽象”,这意味着它提供了高级语言的便利性,同时保持了接近低级语言的性能。Rust 的数据类型系统是其核心特性之一,它包括了几种不同的类型,用于处理各种编程场景。…

oneplus6-编译-LineageOS-19.1-android12

lineage-19.1/oneplus6-build.md 修复内核崩溃 经过此两修改后, 编译出的OTA包 刷入手机, 手机重启正常越过logo 进入android, 但卡在LineageOS-19的弧形进度界面, 没有此两修改时, 根本进不到android, 只到开机logo就黑屏 亮呼吸灯 , 串口处于900E(高通ramdump模式), 因此…

CSS Module:告别类名冲突,拥抱模块化样式(5)

CSS Module 是一种解决 CSS 类名冲突的全新思路。它通过构建工具&#xff08;如 webpack&#xff09;将 CSS 样式切分为更加精细的模块&#xff0c;并在编译时将类名转换为唯一的标识符&#xff0c;从而避免类名冲突。本文将详细介绍 CSS Module 的实现原理和使用方法。 1. 思…

第三次作业

1.在/home中创建一个名为 file1.txt 的文件&#xff0c;并设置权限为&#xff1a;所有者和组成员可以读写&#xff0c;但其他人只能读。 [rootlocalhost home]# touch file1.txt [rootlocalhost home]# ll -rw-r--r--. 1 root root 0 11月 11 23:06 file1.txt [rootlo…