Java基础-巩固-比较遗忘的知识点

有了好的坚实的基础,才能盖好整个大楼;

人就是这样 越是没有实力越爱说大话 世界上只有没有实力的人 才整天希望别人赞赏 –卡卡西

1.Java中数组的内存分配

Java程序在运行时,需要在内存中分配存储空间。为了提高运算效率,对空间进行了不同区域的划分,在每一片区域都有特定的处理数据的方式和内存管理方式。

  • 栈 存储 局部变量
  • 堆 存储 new 的对象
  • 方法区 本地方法区和寄存器(供cpu使用)

2.二维数组

概述:一个元素为一维数据的数据
格式

  • int [][] arr= new arr[m][n]
  • m表示这个二维数据有多少个一维数据
  • n表示这个元素里 有多少个元素
    举例

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

  • 这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
  • 每个一维数组有2个元素,可以通过arr[m][n]来获取
  • 表示获取第m+1个一维数组的第n+1个元素

3.面向对象思想

1.概述:面向对象是面向过程的编程思想

特点:
- 更符合我们思想习惯的思想
- 将复杂事情简单化
- 将我们执行者变为指挥者
那么,我们就针对面向对象思想举几个例子吧。

1.买电脑:
面向过程:我要了解电脑–了解我自己的需求–找对应的参数信息–去中关村买电脑–讨价还价–买回电脑
面向对象:我知道我要买电脑 – 计算机老师去给我买 – 老师就买回来了
2.洗衣服:
面向过程:把衣服脱下–找一个盆–放点洗衣粉–加点水–把衣服扔进去–搓一搓–清洗衣服–拧干–晾起来
面向对象:把衣服脱下–打开全自动洗衣机–扔进去–一键即可–晾起来
列举了上面两个例子,我们可以看出,运用面向对象的思想可以很方便的解决我们的问题,同时我们也可以把面向对象思想的使用规则做以总结,让我们更符合面向对象思想
- A.首先分析有哪些类
- B.分析哪些类有什么功能
- C.最后分析类与类之间的关系
练习:把大象装进冰箱。
- 类与对象的关系

2.类:是一组相关的属性和行为的集合
  • 属性 事物的基本描述
  • 行为 事物的功能
    对象 类的具体实现
3.成员变量和局部变量的区别
  • 在类中的位置不同
    成员变量——类中方法外
    局部变量——方法内或者方法声明上
  • 在内存中的位置不同
    成员变量——堆内存
    局部变量——栈内存
  • 生命周期不同
    成员变量——随着对象的存在而存在,随着对象的消失而消失
    局部变量——随着方法的调用而存在,随着方法的调用完毕而消失
4.封装(Encapsulation),继承,多态 (三大属性)
  • 封装的概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  • 好处:隐藏实现细节,提供公共的访问方式
  • 提高了代码的复用性
  • 提高安全性
    原则:
  • 将不需要对外提供的内容都隐藏起来
  • 把属性隐藏,提供公共方法对其访问
5.抽象类与接口的区别
  • 成员区别
    • 抽象类
    • 成员变量 可以常量 也可以是变量
    • 构造方法 有
    • 成员方法:可抽象 可非抽象
      -接口
      -只能是常量
      -只可以抽象
  • 设计理念的区别
    - 抽象类
    • 被继承体现是“is a ”的关系
    • 抽象类中定义是该继承体系的共性功能
      -接口
      -被实现的是“is a”的关系
      -接口中定义是该继承体系扩展功能

4.多态 (三大属性之一)

概述:某一个事物,在不同时刻表现出来的不同状态。
我们来举例说明:
- 猫是猫,狗是狗,猫和狗都是动物。
- 水在不同环境下的状态不同(液体,固体,气态)。

那么使用多态的前提是什么呢?

  1. 要有继承关系。
  2. 有方法的重写。
    3.要有父类引用指向子类对象。
  父 f =  new 子();
 下面我们用代码来体现
  //父 f =  new 子();
  Fu f = new Zi();
  System.out.println(f.num);
   //找不到符号
   //System.out.println(f.num2);
    f.show();
   //f.method();
   f.function();

输出结果:

100
show Zi
function Fu

多态的好处和弊端:

提高了代码的维护性(继承保证)
提高了代码的扩展性(由多态保证)
坏处
不能使用子类的特有功能。 (多态中的转型 可以访问)


多态中的转型

向上转型
- Fu f = new Zi();
- 父类引用指向子类对象
向下转型
- Zi z = (Zi)f;//要求该f必须是能够转换为Zi的。

5.内部类

概述:把类定义在其他类的内部,这个类就被称为内部类。
举例:在类A中定义了一个类B,类B就是内部类。
特点:


  1. 内部类可以直接访问外部类的成员,包括私有。
  2. 外部类要访问内部类的成员,必须创建对象。
    内部类位置 :

成员位置:在成员位置定义的类,被称为成员内部类。
局部位置:在局部位置定义的类,被称为局部内部类。
如果像访问内部类对象,要这样 创建
 //格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
 Outer.Inner oi = new Outer().new Inner();
 //Inner io = new Innner();//这样是访问不到的

成员内部的常见修饰符
private 为了保证数据的安全性
static 为了让数据访问更方便
被静态修饰的成员内部类只能访问外部类的静态成员

 //成员内部类被静态修饰后的访问方式是:
  Outer.Inner.show2();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值