面向对象——知识点及复习

本文详细介绍了Java面向对象编程的基本概念、方法、关键字、权限、继承、多态、对象转型、抽象类、接口、枚举等核心知识点,旨在帮助开发者深入理解并灵活运用Java的面向对象特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、构造方法与普通方法的区别:
  格式:public/private(修饰符)跟类名同名(无参,有参都可以){<语句块>} (这是一般格式)
  特殊:public void 类名(无参,有参){}
        类名 对象=NEW 类名();
        对象.类名/方法名();
        public int 类名(无参,有参){return ?;}

  普通方法:
  格式:public/private(修饰符)void/类型 方法名(无参,有参){《语句块》}
  备注:普通方法和构造方法一共12种,放在Test2和Test3里面

2、方法输出总结:
   (1)如果是void无返回值,必须在方法里面有system输出语句,然后在main方法里面,直接调用方法就可以,不用再用输出语句。
   (2)如果是“类型”有返回值,必须在main方法里面有system输出语句,否则无法输出;方法里面必须有return关键字。
   (3)不管是有或无返回值的方法,在方法里面都可以有system输出语句;(如果碰到有返回值的,system输出语句必须放在return的前面)。
   (4)如果是无参构造方法有system输出语句,在main方法里面把类名new一个对象来,就可以输出了;比如:
         Test t=new Test();
        (Test是类名,t是这个类的对象,此时就可以输出无参构造方法里面的system输出语句)。
   (5)如果是带有形参的构造方法,在方法里面不需要给return关键字,在main方法里面把类名new一个对象来,但必须跟上面的方法有同样形参个数,此时才可以输出;比如:
        Test(int a,int b){
          system.out.println(a+b);
}
        Test t=new Test(2,3);

3、this关键字小小结:
   作用:指向当前成员变量;
   例子:
   private int a;
   Test(int a){
     this.a=a;
}
   此时的a是形参int a的变量,this.a的指向是成员变 量:private int a这个a里面的值;

4、get()和set()方法:(不要自己写,让它自动生成)
   必须要有成员变量;
   右键——source——找到get()和set()——点击确认;
   如何运用这两个方法:
   必须在main方法里面,先set()给它值,后从get()取值;
   例子:
   private int a,b;
   set(),get();....
   public static void main(String[] args){
      Test t=new Test();
      t.setA(100);
      system.out.println(t.getA());
}

5、toString()方法:
   作用:重写;
   右键——source——找到toString()——点击确认;
   如何用:
   必须先有成员变量;
   要有set()方法;
   在main方法,直接调用toString();
   例子:
   private int a,b;
   set();....
   public static void main(String[] args){
     Test t=new Test();
     t.setA(10);
     t.setB(20);
    system.out.println(t.toString());
}

6、foreach(做为理解)
      语法:for(变量类型 变量名:目标数组){《语句块》} 
      int[] a={1,5,8,2,6};
      for(int b:a){
            System.out.println(b);
}
     优缺点:优点:遍历方便;缺点:没有下标,不能排序;

7、十种方法:
      语法:修饰符(public/public static)+有/无返回值+方法名  (有/无形参){}
      方法调用的规则:
      1、如果是静态方法与静态方法之间的调用,直接在main方法里面调用,不需要new出来;
      2、如果是非静态方法与静态方法之间的调用,必须在main方法里面new一个对象来,然后用对象.方法名;
      3、如果是无返回值方法的调用,直接在main方法里面调用方法,不需要输出语句(System.out.println();)
      4、如果是有返回值方法的调用,必须在main方法里面加上输出语句(System.out.println(对象.方法名);),才能够输出return后面的数据;
      5、如果方法中带有形参,在调用时也必须带同样数量的形参且类型必须一样;
      6、构造方法:方法名与类名一样,不需要有/无返回值的修饰,但可以用权限来修饰;
      7、构造方法的调用:直接在main方法里面new出来即可。

1、内存分析:
      栈内存和堆内存:栈内存,是临时存放空间,程序执行完就 消失;堆内存,永久存放空间(new 出来的对象),即使程序执     行完也不会因此而消失;
      注意事项:内存分析里面,最怕就是不同对象,它的分配内存空间是不一样。
2、equals与==的区别:
      equals:针对对象与引用类型(包装类型),其它八大基本类型不能用equals;
      ==:针对八大基本类型,其它不行;
      格式:a.equals(b);
3、八大包装类型:
      Integer,Byte,Short,Long,Character,Double,Float,Boolean
4、重载方法:
     定义:方法名一样,形参类型或数量不同;
     注意事项:有/无返回值的修饰,都不能改变它是同一个方法
5、权限:
     private:类里面;
     default/package:类或包里面;
     protected:类、包或子类里面;
     public :任何地方;
6、this,static关键字:
      this三大特征:
      指向当前类;可以用this调用本类的构造方法;
      指向当前类的属性;
      static:非静态的方法或变量不能调用静态的方法或变量;反之,可以;
7、继承:
     特点:JAVA单继承;
     关键字:class 子类 extends 父类/基类;
     功能:子类继承父类里面所有成员变量和方法;
     super的用法:
     1、super.父类里面的方法;放在子类方法里面的任何地方;
     2、super(a,b),父类里面带有参数的构造方法,此时在子类的构造方法里面必须放在首行;
     重写方法:
     定义:方法名和参数相同,
     注意事项:如果父类有构造方法,那么父类的构造方法不会被代替掉而且是第一个输出的;如果子类重写了 父类里面的普通方法,此时父类里的普通方法不会被输出(被子类替代);  
8、package/import
      格式:package一定是放在程序首行;紧接着就是import,
      三种写引包的格式:
      com.自己想;
      org.自己想;
      文件路径;      
    

 

 

1、面向对象的概念与思想:
     面向对象看重结果与思维,“领导”,懂得分工协作!
2、前九种方法:
      静态与非静态方法的调用;静态与静态方法的调用;
      有/ 无返回值(无返回值:void,有返回值:返回类型,然后必须在方法体内加return);
3、重载与重写方法:
      重载:在同一类,方法名一样,有无返回值类型不影响判断它是同一个方法,形参的个数或类型不同;
      重写:以继承为前提,方法名和(形参个数和类型)必须一致;
4、构造方法:
      方法名与类名一致,前面不允许添加修饰符(void/其他类型),对象被创建时,调用构造方法;
5、关键字:this,equals;
      this:指向当前类;指向当前类的属性;可以使用this调用本类的构造方法;
      equals:一般情况针对对象或引用类型,八大基本类型用“==”来判断;
                  格式:a.equals(b);(a,b表示同一类型,除八大基本类型除外);
6、权限:
      public,protected,default/package,private;
7、继承:
     extends : A extends B{};
     特点:子类拥有父类所有属性及方法;重写;子类可以扩展其他属性或方法,要比父类强大;
     super:super.父类的方法;super();(有关构造方法的调用)
8、多态:
     三大条件:继承,重写,向上转型;
     注意事项:在多态里面,除了重写方法(能调用到子类的重写方法,其他方法是调不到的);
     特点:可扩展性强,方便方法的调用,能把父类的方法更彻底的运用;
9、对象转型:
     向上转型:父类的引用指向子类;
     向下转型:子类的引用指向父类;
     例子:(A是父类,B是子类)
     A a=new B();向上转型
     B b=(B)a;向下转型
     优缺点:向上转型是为多态服务,取不到子类的其他方法;
                   向下转型都可以调用到父,子类的方法,对象容易造成混乱(建议不使用);
10、抽象类:abstract;
        位置:public后面,class前面;public abstract class..
        抽象方法:public  abstract  void f();
        注意事项:抽象类可以有变量,实例化的方法,未实例化的方法,抽象方法不能用static来修饰;
        运行:抽象类必须被继承才能实例化方法;
  要点:抽象类不一定有抽象方法,但有抽象方法的一定是象类;
11、关键字:Object(JAVA基类),toString();(格式,作用)
  重写:@Override最好不要删除;
12、接口:
  interface替代class;implements实现接口;
  意义:弥补了JAVA里面只有单继承的不足;可以同时实现多个接口,并要实例化接口里面的方法;
  注意事项:接口可以当作父类来看,存在多态(向上转型);
       接口本身不能被new出来;
13、枚举:
  enum替代class;
  注意事项:构造方法的输出,枚举里面有几个常量方法(枚举对象),构造方法就要调用几次;如果重复创建枚举对象,构造方法不会重复再输出;

 

 

 

 

 

 

 

 

 


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值