java初学--第二篇(数组、内存分配、重载、面向过程、面向对象)

数组

特点:
--数组是存储多个变量(元素)的容器
--着多个变量的数据类型要一致

格式
-格式1: 数据类型[] 数组名; ---常用。定义一个整形数组,名为数组名
-格式2: 数据类型 数组名[];  ---定义一个变量为 数组名[]
--注意:定义做完,数组中是没有元素值的。

赋值方式:
-1.动态赋值 数据类型[] 数组名 = new 数据类型[长度]
-2.静态赋值 数据类型 数组名[] = {100,2000,300,100}
==》数据类型 数组名[] = new int[]{100,2000,300,100}

 

Java中的内存分配

--栈  存储局部变量
--堆  存储new出来的东西
--方法区
--本地方法区(和系统相关)
--寄存器(给CPU使用)

 

方法定义及格式

--方法就是完成特定功能的代码块
--在很多语言里面都有函数的定义
--函数在java中被称为方法

--格式
--修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
函数体;
return 返回值 ;
}

方法重载

--概述
--在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
--特点
--与返回值类型无关,只看方法名和参数列表
--在调用时,虚拟机通过参数列表的不同来区分同名方法

数据加密

package com.demo;
import java.util.Scanner;
public class Test06 {
   public static void main(String[] args){
       Scanner sc = new Scanner(System.in);
       System.out.println("请输入一个四位数:");
       int number = sc.nextInt();
       int[] arr=new int[4];
       arr[0]=number/1000%10;
       arr[1]=number/100%10;
       arr[2]=number/10%10;
       arr[3]=number%10;
       for (int i = 0; i < arr.length; i++) {
       arr[i]+=5;
       arr[i]%=10;
      }
       reverseArray(arr);
       System.out.print("加密后的数为:");
       for (int j : arr) {
           System.out.print(j);
      }

  }
   public static void reverseArray(int[] arr){
       for (int start=0,end= arr.length-1;start<=end;start++,end--){
           int temp = arr[start];
           arr[start] = arr[end];
           arr[end] = temp;
      }
  }
}

面向过程

--需求单一。简单,一步一步操作可以使用。C语言

面向对象

--将复杂的事情简单化
--将我们从执行者变成指挥者
--角色发生了转变

举例

洗衣服:
面向过程:把衣服脱下来--》找盆--》加洗衣粉--》加水--》浸泡--》揉一揉--》清洗--》拧干--》晾晒
面向对象:(区分为我和洗衣机两个对象)把衣服脱下来--》打开全自动洗衣机--》扔衣服--》按钮--》晾晒

类和对象案例

--创建对象
-类名 对象名= new 类名();
-Student s = new Student();
--对象名.成员变量
--对象名.成员方法
--class 描述类

 

成员变量和局部变量区别

-在类中的位置不同
--成员变量类中方法外
--局部变量方法内或者方法声明上
-在内存中的位置不同
--成员变量 堆内存
--局部变量 栈内存
-生命周期不同
--成员变量随着对象的存在而存在,随着对象的消失而消失
--局部变量随着方法的调用而存在,随着方法的调用完毕而消失
-初始化值不同
--成员变量有默认的初始化值
--局部变量没有默认的初始化值,必须先定义,赋值,才能使用。

private关键字

-一个权限修饰符
-可以修饰成员(成员变量和成员方法)
-被private修饰的成员只在本类中才能访问。

应用
-把成员变量用private修饰
-提供对应的个体Xxx()/setXxx()方法
-一个标准的案例的使用

 

封装

-封装概述
--面向对象的三大特征之一
--客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改
-封装原则
--将不需要对外提供的内容都隐藏起来。
--把属性隐藏,提供公共方法对其访问
---成员变量private,提供对应的getXxx()/setXxx()方法
-好处
--通过方法来控制成员变量的操作,提高了代码的安全性
--把代码用方法进行封装,提供了代码的复用性

this关键字

-this:代表所在类的对象引用
--方法被哪个对象调用,this就代表哪个对象

构造方法

-概述
--给对象的数据进行初始化
-格式
--方法名与类名相同
--没有返回值类型,连void都没有
--没有具体的返回值
-注意
--不提供构造方法,系统会给出默认构造方法
--提供了构造方法,系统将不再提供
--构造方法也是可以重载的

标准类的代码写法和测试

-
--成员变量
--构造方法
---无参构造方法
---带参构造方法
--成员方法
---getXxx()
---setXxx()
-给成员变量赋值的方式
--无参构造方法+setXxx()
--带参构造方法

面向对象标准案例(学生类)

package com.demo5
public class Student{
/**
*学习
*/
public void study{
System.out.println("好好学习!");
}
}

package com.demo5;
public class Teacher {
   public Student getStudent() {
       Student s=new Student();
       return s;
  }
}

package com.demo5;
public class Test {
   public static void main(String[] args) {
       Teacher t = new Teacher();
       Student s = t.getStudent();
       //Student s = new Student();
       s.study();
  }
}

-类名作为形式参数案例
   --要的其实是该类的对象
-类名作为返回值案例
   --返回的其实是该类的对象

posted on   小白Write代码  阅读(193)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示