java面向对象基础知识04

发布于:2024-11-11 ⋅ 阅读:(98) ⋅ 点赞:(0)

数组

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.示例杨辉三角

        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位随机验证码

 // 首先创建一个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 异常类 ]

网站公告

今日签到

点亮在社区的每一天
去签到