Java对象、封装

本文介绍了Java中的内存分布,包括栈(存放局部变量和方法执行)、堆(存放new出来的对象)、方法区(存放类信息)和本地方法栈。同时讲解了数组反转、面向对象概念(如类、对象、封装、继承和多态)、对象创建与使用以及构造方法和继承的重要性。
摘要由CSDN通过智能技术生成

学习目标:

  • 学习Java

学习内容:

  1. Java中的内存分布

1.栈(Stack):存放都是方法中的局部变量,所有方法执行都是在栈中执行,例如main()
2.堆(Heap):所有new出来的,都存放在堆中
堆内存中的都有默认值:

整数-------0
浮点数-----0.0
字符-------‘\u0000’
布尔-------false
引用类型----null

3.方法区:存放class的方法信息
4.本地方法栈:与操作系统有关
5.寄存器:与cpu有关

  1. 数组元素反转
		int[] arrayB = new int[]{1,5,6,78,8,1,2,6,54};
        //数组B的反转
        for (int i = 0; i < arrayB.length; i++) {
            //改变顺序前数组
            System.out.print(arrayB[i] + " ");
        }
//        第一种写法
//        int temp;
//        for (int i = 0; i < arrayB.length/2; i++) {
//            temp = arrayB[i];
//            arrayB[i] = arrayB[arrayB.length-(i+1)];
//            arrayB[arrayB.length-(i+1)] = temp;
//        }
        //第二种写法
        int min2, max2, temp2;
        //数组为单数,则min2 == max2,数组为偶数,则是min2>max2时交换完毕
        for (min2 = 0, max2 = arrayB.length - 1; min2 < max2; min2++, max2--) {
            temp2 = arrayB[min2];
            arrayB[min2] = arrayB[max2];
            arrayB[max2] = temp2;

        }
        for (int i = 0; i < arrayB.length; i++) {
            //改变顺序后数组
            System.out.print(arrayB[i] + " ");
        }
  1. 当方法传递参数是数组/对象的时候,传递的其实是数组的地址,同理return返回的也是数字/对象的地址
  1. 面向对象的基本概念

面向过程:注重的是每一步的具体操作
面向对象:注重的是结果,过程尽量精简

  1. 类和对象:

类是属性和行为的集合,可以使用属性和行为概括描述该类事物
属性:所描述事物的状态信息
行为:该事物能够做什么
例如: 属性 姓名、身高、年龄…行为:跑、跳、睡觉…
对象:是类的实体表现,例如 人

  1. 类的代码实现
public class Student {
    //成员变量(属性)
    String name;//姓名
    int age;//年龄

    //成员方法
    public void study() {
        System.out.println("学习");
    }

    public void eat() {
        System.out.println("吃饭");
    }

    public void sleep() {
        System.out.println("睡觉");
    }

}
}

注意:类中的方法,无static,有static则为普通方法

  1. 对象的创建

类名称 对象名 = new 类名称();

  1. 对象的使用

使用成员变量:对象名.成员变量名;
使用成员方法:对象名.成员方法名();

 	Student stu = new Student();
        stu.name = "张三";
        stu.age = 20;
        stu.eat();
        stu.study();
        stu.sleep();
  1. 使用对象类型作为方法的形参或返回值类型,传递的都是该对象的地址
  2. 局部变量与成员变量的区别

定义位置不一样
局部变量在方法内,成员变量在类内,方法的外部
作用范围不同
局部变量的范围在当前大括号开始到所属结束,成员变量在类中可以使用
默认值
局部变量没有默认值,使用前需要有初始值,成员变量有默认值

  1. 面向对象三大特性:封装、继承、多态

封装:

方法是一种封装
private是另一种封装,用户保护输入不合法数据


    private String name;
    private int age;public int getAge(){
      return age;
    }public String getName(){
      return name;
    }public void setAge(int age){
       this.age = age;
    }public void setName(String name){
      this.name = name;
    }
  1. private修饰的变量,只能在本类访问,外部无法访问,this是为了区别private修饰变量和()中形参局部变量重名问题
    可以在setXxx中添加一切判断,组织不合法数据的进入

13.构造方法:通过new 类名字();来创建
在类中定义为

修饰符 类名(参数列表){}

可以书写多个构造方法,例如无参和全参
方便在初始new时,更轻松的放入private修饰的变量
类名 变量名 = new 类名(参数…);
只能方便首次放入,后续读取需要用getter。后续更改也需要用稿setter方法。

14.继承:为了不同的避免代码存在重复,提取出不同代码相同部分,组成它们的父类,子类继承。


学习时间:

  • 上午9:00 — 晚上9:00,观看视频P112
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值