本文主要是介绍【再回顾面向对象】,关键字Satic、final,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
再回顾面对对象
object:所有类的祖先,所有类的方法
GC:垃圾回收站
一般不会回收对象——Car c = new Car();
toString()
Hashchde要跟地址对应
- 尽量不要自己产生
- 跟指针不一样,指针是直接指向地址
- 像是数组的索引
- 找的时候可能会有相同的hashcode,所以再加上equals比较哦
- **对象是如何存储的?**重点x
- 如图:
指针是一把”双刃剑“。
内存不安全,可以访问,改写+5666很不安全。
euqals,==
访问控制符——控制可见性
本类中 | 同包 | 不同包继承关系 | 不同包无继承 | |
---|---|---|---|---|
private | ✓ | ✕ | ✕ | ✕ |
dafult(不写,默认) | ✓ | ✓ | ✕ | ✕ |
protected | ✓ | ✓ | ✓ | ✕ |
public | ✓ | ✓ | ✓ | ✓ |
构造器可以用任何访问控制符
抽象类
抽象类 | 普通类 | 接口 | |
---|---|---|---|
定义类 | abstract class | class | interface |
定义子类 | extengs | extends | implement |
方法 | abstract方法,非abstract方法 | 非abstract方法 | abstract方法,default |
属性 | 正常属性 | 正常属性 | 常量 |
构造器(初始化属性) | 正常 | 可以 | 不允许使用 |
创建对象 | 不能创建抽象类对象 | 可以 | 不能创建接口对象 |
继承 | 单继承 | 单继承 | 多实现 |
类–>抽象类–>《接口》
越抽象的概念越稳定
Eat
《IEat》接口和实现
一般关键字
static——(静态/公共区域)OR 全局空间
有它往哪里写都可以
很久以前的main
Jvm的入口方法
历史上,类是如何成为对象的?
核心:顺序在new之前出来,多次构造创建对象时只出现一次,
两点注意
- class转换为对象之前加载static,放入static的空间(早)
- 独立内存空间,被对象共享(共享空间)
- 可用于类的单元测试
b++ ----> new *3----> 3+3=6
银行类
package com.ffyc.entity;public class Bank {private static double balance = 100000.00;//有static变成全局了,出现早public static String name = "帅帅帅";public void deposit(double money){balance+=money;}public void withdraw(double money){balance-=money;}public void print(){System.out.println("余额"+balance);}// public static void main(String[] args) {
// System.out.println("余额"+balance);
// }
}
Test:
package com.ffyc.test;import com.ffyc.entity.Bank;public class TestBank {public static void main(String[] args) {Bank icbc = new Bank();Bank abc = new Bank();Bank ccb = new Bank();icbc.withdraw(10000);abc.withdraw(8000);ccb.deposit(50);icbc.print();abc.print();ccb.print();System.out.println(Bank.name);}
}
输出:
分层思想
crud:增删改查
基本框架
项目
构建
entity
学生类:属性–set,get,toString,constructor
dao层
数据交互,数组CRUD(增删改查)
一层一个接口
和一个实现。
package com.ffyc.sims.dao;import com.ffyc.sims.entity.Student;/*** iS 实现类*/
public class IStudentDaoImpl implements IStudentDao {private Student[] students = new Student[100];private int size;//学生数量,默认是0@Overridepublic void add(Student student) {if (size>=students.length) {System.out.println("学校人数已满。");}students[size++]=student;}@Overridepublic void delete(Student studentId) {}@Overridepublic void update(String studentId, double score) {}@Overridepublic Student findById(String studentId) {return null;}
}
final
1.修饰基本数据类型–变量不可变(只读)
2.
3.修饰类—不可被继承—public final class String
4.sum——前四个是重点x 面试必备
这篇关于【再回顾面向对象】,关键字Satic、final的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!