java类和对象知识点归纳整理

1.oop:面向对象编程
2.面向对象三大特征:
①封装性:用private修饰成员属性,可以使该成员属性仅在此类中有权访问;
②继承性:java中可以使用继承(extends)这种操作,来提高代码重用性;
③多态性:基类引用派生类对象,并且基类和派生类有同名的覆盖(重写/override)方法(之后细讲;
3.什么是类和对象:
类是一个抽象的概念(class),也可以说是一个模版;
对象是一个真实存在的实体,也就是由模版构造出来的一个具体的事物;
4.一个java文件中只能有一个由public修饰的类名;
5.class定义类里面的属性,都是实例变量。
在方法体内的变量叫局部变量。
6.test类要调用 class类里面的方法,及属性,要通过

class名.方法名();
   person.getPersonInof();   /*person在栈上
	person.age=10;				Person和其属性在堆上
	person.name="bit";		getPersonInof称为成员方法,方法体内内容在栈上*/

7.对象属性的初始化方式有三种:
①提供一系列的get和set方法。(public)

alt+insert 点击 G and S ;
System.out.println在底层源码实现时调用的是 Object:toString();
alt+insert 点击 toString ->ok;
② 提供合适的构造函数。
(如果用户没有给提供构造函数,则它会调用自己默认的构造函数,
就是没有参数的构造函数如果用户提供了其他的构造函数,默认的
构造函数失效)
构造函数可以重载,即函数名相同,参数列表不同,对返回值不做要求

③静态代码块和实例代码块。
8.this代表当前对象的引用(当前对象内存的地址)
调用函数,调用属性,调用构造函数;
this可以进入没有参数的构造函数之后转向调用有参数的构造函数然后执行后者,
并且应用this参数。(必须写在第一行)
9. 在类中定义一个 static值,或者方法, 用类名(Person.x)访问就不会收到警告。
static修饰的方法都在方法区。就要用类名调用。
用类名调用就是属于类,用对象名调用就是属于对象。
10.对象的产生需要两步①为对象开辟内存 ②调用合适的构造函数 ;
11.当main函数(因为被static修饰)开始运行,其中的所有被static修饰的变量都会先初始化(类加载时执行);
12.静态代码块和动态代码块会先构造函数早一步运行。 静态>–实例>–构造
13.静态代码块只会被初始化一次(当有两个及以上对象被建立时)。
14.在一个类中创建一个类,则新创建的类被称为内部类;
15.实例内部类(成员内部类):

  OutClass.InnerClass innerClass = outClass.new InnerClass();/*得到一个实例类对象*/

16.如何得到实例内部类对象??通过外部类对象拿到内部类的实例。

OutClass outClass = new OutClass();
	   OutClass.InnerClass innerClass = outClass.new InnerClass();

        OutClass.InnerClass innerClass1=new OutClass().new InnerClass();

17.实例内部类可以定义static的数据成员,但必须加以final修饰,即就是在编译期间就把值确定下来;

public static final int A = 100;

18.实例内部类有额外的内存消耗,它拥有外层类的this引用;
19.得到一个静态内部类对象的方法;

  OutClass.InnerClass innerClass =new OutClass.InnerClass();/*得到一个静态内部类对象*/

20.本地内部类(方法内部类),就是在方法内创建一个类;
21.匿名内部类:就是一个没有名字的内部类,也没有访问修饰限定符;
22.继承:使用继承(extends)这种操作,来提高代码重用性;
23.基类–》父类–》超类 ; 派生类–》子类
24.派生类继承了除了构造函数之外的所有基类的内容;
25.派生类需要帮助基类构造;
26.super: 使用super(调用基类的构造函数)放在子类构造函数的第一行

 super();//调用基类的构造函数
  super.data;//访问基类的属性
  super.func()//调用基类的成员方法 

27.多态:基类引用派生类对象(向上转型),并且基类和派生类有同名的覆盖(重写/override)方法;
28.运行时多态(动多态) (原理:地址覆盖)
CLASS对象放在方法区,存放的是Class对象的RTTI信息(runtime type information)被static修饰的变量也放在方法区上,其他所有的对象都放在堆上;
29.一个类型产生一张方法表和一个Class对象;
30.final修饰的变量经过一次初始化之后,变为常量,不能再做赋值修改;
31.extend继承只能单继承 A ex B ;
32.被final修饰的类不能被继承(密封类)(final class B);
33.final +方法 (密封方法)不能发生重写;

public final  void func(){
 			}

以上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值