• 4面向对象(OOP)


    • 学习线路

        初学:
        	熟悉语法
        进阶:
        	1、23种设计模式
        	2、6中开发原则
        高级:
        	1、优化
        	2、架构
        	3、安全
      

    概念

    	类:一类具有相同特性的事物的抽象描述,用一个java类表示。
    	成员变量:抽取的属性。
    	方法:抽取的行为。
    	对象:是类的实体。(object/instance)
    

    类与对象

    	1、如何声明一个类
    		[public 等修饰符] class 类名称{
    			类成员列表;
    		}
    	2、创建对象
    		类名称 对象名 = new 类名称();
    	3、属性:位置在类中,方法外
    	  
    	  为属性赋值:对象.属性 = 值;
    		(1)属性有默认值
    			和数组的元素的默认值是一样的:
    			byte,short,int,long:0
    			float,double:0.0
    			char:u0000
    			boolean:false
    			引用数据类型:null
    
    • 权限修饰符(*****)
    修饰符 本类 本包 子类 任何地方 可修饰
    private 属性、方法、内部类、构造器
    default 属性、方法、内部类、构造器、外部类
    protected 属性、方法、内部类、构造器
    public 属性、方法、内部类、构造器、外部类

    方法

    • 声明方法

        1、 声明方法
         
        	1、先声明后使用
        	2、位置:类中方法外
        	3、格式:
        	[修饰符] 返回值类型 方法名(形参列表){
        		方法体(实现该功能的代码);
        	}
        2、形参:定义/声明方法时()中的参数。
          实参:调用方法时传入的参数。
        3、形参是基本数据类型时,传值;当是引用数据类型时,传引用(地址)
      

    注意:String对象不可变,还有包装类等对象

    • 调用方法

        1、静态方法
        	非本类    类名.方法名();
        	本类   方法名();
        2、非静态方法
        	对象.方法名();
      
    • 方法的特点

        1、先声明后调用
        2、不调用不执行,调用一次执行一次
        3、方法最多有一个返回值;可以没有返回值,当返回值数量大于1时,用数组或者集合装起来后,返回
        4、方法可以嵌套调用,但是不可以嵌套定义。
      
    • 方法的重载(Overload)

        定义:(1)相同类中的两个或多个方法(2)方法名相同,形参列表不同(类型、个数、顺序)(3)与返回值类型无关。
      
    • 命令行参数:给主方法(main)传递实参。

        	cmd 模式下》》   java   类名称   实参1  实参2  实参3 ....
      
    • 可变参数

        某个方法调用时,实参的个数是可变的。  
        (1)一个方法最多有一个可变参数
        (2)必须放在最后
           public int qiuhe(int... num){//num本质是数组
        		int sum = 0;
        		for(int i=0;i<num.length;i++){
        			sum += num[i];
        		}
           }
        如何调用?
        	(1)传递相同类型的参数0~n个
        	(2)可以传递相同类型的数组
      

    构造器

    1、有什么作用
    	(1)创建对象时,并为属性赋值。
    2、有什么特点
    	(1)所有类都有构造器,如果这个类没有显示声明构造器,将默认有无参构造,若加了构造器,则不再有无参构造器。
    	(2)构造器可以重载
    	(3)构造器名和类名相同
    3、如何声明
    	【修饰符】 构造器名(){}
    	【修饰符】 构造器名(形参列表){}
    4、怎么调用构造器
    	在非本类中   类名 变量名 = new 类名();
    

    this关键字

    用法:
    	this.属性;
    		当成员变量与局部变量重名时,成员变量前加this,加以区分。
    	this.方法();
    		this代表当前对象。
    	this();
    		表示访问本类的无参构造,有形参时,访问有参构造。必须在构造器中第一句。
    

    super关键字

    	super.属性
    		当子类与父类的某个可见的属性“重名”时,用“super.”表示访问父类的属性
    	super.方法();
    		当子类需要调用父类重写的方法时,需要加"super."
    	super();
    		只能出现在子类构造器的首行。
    		默认出现的是super(),表示调用父类的无参构造器。你写不写我都存在。
    		如果父类没有无参构造,必须在子类的构造器首行,用super(实参列表)调用父类的构造器。
    

    包的概念 package

    • 作用

        1、避免类的重名
        2、用于控制访问权限
        3、划分项目的结构层次,通常将功能相近的类划分到同一个包中
      
    • 规则

        1、用package定义包,位于源文件首部
        2、包的命名规范 xxx.yyy.zzz(通常以所在公司的域名的倒置)
      
    • 导包 import

        1、位置:package和class之间
        2、import 包名.类名;
          import 包名.*;
      

    构造器

    1、每个类都有构造器
    2、当没有显示声明构造器时,默认提供无参的构造器;当显示声明构造器时,则不再提供无参构造器,若需要还需显示声明。
    
    构造器的特点
    1、没有返回值
    2、构造方法名和类名一样
    3、可以重载
  • 相关阅读:
    ios ASI 断点下载
    ios 视频播放器MPMoviePlayerController
    ios SDWebImage 图片加载显示菊花
    ios简单的音频播放
    学iOS开发(一)——实现一款App之Foundation框架的使用
    学iOS开发(二)——实现一款App之编写自定义类
    蓝欧ios培训视频
    ios开发教程地址
    day15_雷神_前端03
    day14_雷神_前端02
  • 原文地址:https://www.cnblogs.com/xingrui/p/9792760.html
Copyright © 2020-2023  润新知