java编程思维笔记

一、乱码原因
1.解析错误(比较简单)
法国人用windows-1252编码文件,中国人用GB18030解析,改变编码查看方式即可
2.在错误解析的基础上进行了编码转换(复杂)
改变编码查看方式不行

恢复:两个关键信息:原来的二进制编码方式A;错误解读的编码方式B,尝试对两个关键信息进行逆向操作。

二、面向对象
3.类的基础
除了八种输出类型,其他类型的数据都用类这个概念表达
static表示类方法,也叫静态方法,与之对应的是实例方法,实例方法没有static修饰符,必须通过实例获对象调用,而类方法可以直接通过类名进行调用。无需创建实例。
private:只能在同一类里面被调用,不能被外部类调用

数据类型由四部分构成:
(1)类型本身具有的属性:类变量
(2)类型可以进行的操作:类方法
(3)类型实例具有的属性:实例变量
(4)类型。。。:实例方法

final:final再修饰变量时表示常量,即不能修改
实例变量:字面意思,一个实际的例子,微信订阅号是一个类型,那“我的微信订阅号”就是一个实例,订阅号的头像,功能介绍等可以看做实例变量,而修改文章等可以是实例方法;
类方法只能访问类变量,不能访问实例变量,实例方法都可访问

Point p=new Point();
Point p:声明变量 new Point();为变量赋值,分配内存,还有调用构造方法,new做了两件事:一是分配内存,二是给实例变量设默认值, p就是对象或实例

this表示当前实例

每个类都至少有一个构造方法,在通过new 创建对象过程中被调用。但构造方法如果没有什么操作要做,可以省略,java会生成一个默认的。但一旦定义了构造方法,java就不会圣成默认的

创建私有构造方法情况:1.不能创建类的实例,类只能被静态访问,2,能创建类的实例,但只能被类的静态方法调用,3.只是用来被其他多个构造方法调用。

3.类和对象的生命周期
new创建类对象或通过类名访问类变量或类方法时,java会将类加载进内存,分配空间,包裹,定义,变量,方法,静态变量并对静态赋值,程序结束后才释放

super和this的区别:this引用一个对象,是实实在在存在的,可以作为函数参数,可以作为返回值,但super只是一个关键字,不能作为参数和返回值,他只用于告诉编译器访问父类的相关变量和方法。

不用super的时候,子类会自动调用父类的默认构造方法,若父类只有带参数的构造方法,没有默认构造方法(无参),则任何子类都必须通过super来调用,

重名的时候,在类内则是各自访问各自的,在类外,则要看访问的静态类型,静态类型是父类,则访问父类变量和方法,是子类,则访问子类,

重载:方法名称相同单参数签名不同,重写:子类重写与父类相同参数签名的方法;
哪个匹配度高用哪个
一个父类的变量能不能转换为一个子类的变量,取决于这个父类变量的动态类型(即引用的对象类型)是不是这个子类或这个子类的子类。

重写不能 降低可见性,即父类如果是public子类也必须是public,父类如果是protected,子类可以是protected,子类可以是public,也可是protected
方法加了final关键字后不能被重写。

虚方法表:在类加载的时候为每个类创建一个表,记录该类的对象所有动态绑定的方法(包括父类方法)及其地址,但一个方法只有一条记录,子类重写父类方法后只会保留子类的,

继承与接口可以同时实现,但是extend要在implement前面
接口与类一样,可以用instanceof来判断是否实现了某接口

继承的好处:复用代码,利用多态和动态绑定统一处理多种不同子类的对象,组合代替继承可以复用,但不能统一处理,接口可以统一处理不同类型的对象,但没有代码实现,无法复用,所以使用接口与组合相结合的形式替代继承。

public interface IDemo {
  void hello();
  public static void test() {
  System.out.println("hello");
  }
  default void hi() {
  System.out.println("hi");
  }
  }

test是一个静态类,可以通过IDemo.test调用,否则要新建一个对象,通过对象调用。

静态内部类与外部类的联系也不大(与其他内部类相比)。它可以访问外部类的静态变量与方法,但不可以访问实例变量和方法。在类内部,可以直接使用内部静态类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值