【Java学习笔记】数组,封装,构造与关键字

.构造方法

1.定义手机的标准类

成员变量:私有化                  成员方法:公共访问方法set()get()

构造方法:有参/无参

2.定义

格式:方法名和类名相同 void都没有,例如public Student(){}

作用:给对象进行数据初始化

注意事项:当我们没有写构造方法,系统默认提供一个无参构造,如果我们给出了构造(无参/有参),系统默认不在提供了,构造方法可以重载!

3.快捷键

//alt+shift+s-->c

//无参构造

public Phone() {

}

//alt+shift+s-->o

//有参构造

public Phone(String brand, int price, String color) {

this.brand = brand;

this.price = price;

this.color = color;

}

.封装和private关键字

1.private作用

可以修饰成员(成员变量/成员方法), 外界不能访问的.被private修饰的成员只能在本类中方法访问。要提供对外的公共方法来间接的访问成员变量!

2. 成员方法:set()/get():公共访问方法

//私有的成员变量

private String name ;

private int age ;

//set()/get()公共访问方法

public String getName(){

return name ;

}

public void setName(String n){ //在main中去给姓名赋值的一个n

name = n;

}

public int getAge(){

return age ;

}

public void setAge(int a){

age = a ;

}

.二维数组

1.定义

1)动态初始化:数据类型[][] 数组名称 = new 数据类型[m][n] ;

数据类型[]  数组名称 [] = new 数据类型[m][n] ;

 m:表示二维数组中有m个一位数组,n:每一个一位数组中的长度

System.out.println(arr);//[[I@7d3598c3 :haxCode---->底层是通过哈希表中的哈希算法:可以理解为地址值

2)数据类型[][] 数组名 = new 数据类型[m][];

这种方式需要我们在代码中动态的给定每一个一位数组的长度!

int[][] arr = new int[2][] ;

 arr[0] = new int[3] ;arr[1]= new int[2];

3)静态初始化 int[][] 数据类型 = {{元素1,元素2,元素3},{元素1,元素2,元素3}....};

:int[][] arr = {{1,2,3},{4,5},{6}};

2.二维数组的遍历

//二维数组的遍历:外层循环:是二维数组的长度,内层循环是一维数组的长度

for(int x = 0 ; x < arr.length; x ++){

for(int y = 0 ; y < arr[x].length ; y++){

System.out.print(arr[x][y]+" ");

}

}

3.例题

需求:打印杨辉三角形(行数可以键盘录入)

public class Array2Test3 {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

//录入并接收数据

System.out.println("请您输入一个行数(n)的值:");

int n = sc.nextInt();

//定义数组,动态初始化

int[][] arr = new int[n][n] ;

//遍历二维数据,给里面添加数据,给每一行的第一列和最后一列赋值为1

for(int x =0 ; x < arr.length ; x++){

arr[x][0] = 1 ;

arr[x][x] = 1 ;

}

//遍历其他元素:按照规律:

//从第三行开始遍历,数据等于上一行的前一列和上一行的本列之后

for(int x = 2 ; x < arr.length ; x ++){

/*

 * 此时的y第一列已经有数据了,所以,从1开始

 * y<=x-1 是最后一列的问题,最后一列也有值了

 * */

for(int y =1 ; y <= x -1 ;y++ ){

//数据等于上一行的前一列和上一行的本列之后

arr[x][y] = arr[x-1][y-1]+ arr[x-1][y] ;

}

}

 

//此时:数据不是我们想要的,列数的变化和之前99乘法表一样;

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();

}

}

}

.面向对象

1.思想概述

面向对象:创建对象,使用对象完成操作!:比如:键盘录入:Scanner sc = new Scanner(System.in);

代表:java:举例:让人给我打水,至于这个人经过了哪些过程不管,只管结果!

什么是面向对象思想?

1)更符合我们日常的一个思想行为习惯

2)我们从执行者变成指挥者

3)将一个复杂的事情简单化

2.过程

1)创建类的对象 如Student s = new Student() ;

2)调用成员变量 如s.name = "高圆圆" ;

3)调用成员方法 如s.study();

3.成员变量和局部变量的区别?

1)位置不同:

  成员变量:类中方法外

   局部变量:在方法定义上,或者方法定义中

2)在内存的位置不同:

成员变量:在堆内存!

局部变量:在栈内存!

3)生命周期不同

成员变量:随着类的加载而加载,随着类的对象的消失而消失

局部变量:随着方法的调用而存在,随着方法调用完毕而消失

4)初始化值不同;

成员变量:有默认的初始化值,系统根据该成员变量的类型来去给默认值

局部变量:必须有初始化值或者是在使用这个局部变量之前赋值,没有默认初始化值!

当局部变量和成员变量名称一致,就近原则输出变量的值!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值