师父就针对用户的渴求开展成立,重复使用一个伊始化操作

  1. 定义

一、面向对象的概念(以统筹首饰盒为例)

重复使用一个起始化操作,来达到少量代码表明复杂操作的目标。

面向对象:师傅针对用户提议的渴求进行分析,并将分析的结果设计成一张完整的图样,与须求的用户确认,然后将全部的准备干活方方面面甩卖完之后再分块制作,最终将相继小一些组装在一块儿。

2.表现

面向进度:用户提出什么样须要,师傅就针对用户的渴求开展创设,直接制作出一个完好的总体,本身也不准备好做首饰盒所需的工具,而是须要什么样再独自拿什么。

(1)用”.”连接

二、面向对象的封装性、继承性、多态性

OkHttpUtils<NewGoodsBea> utils = new OkHttpUtils<>(context);

1、封装性:指对外部不可见

utils.setRequestUrl(url)

public class Person {

String name;

int age;

public void tell () {

System.out.println(“姓名:”+name+”,年龄:”+age);

}

}

//在主函数调用

Person per =newPerson();

per.name=”张三”;

per.age= -30;

per.tell();

.addParam(“cat_id”, “0”)

为上述顺序添加封装属性:

.addParam(“page_size”, 10)

public class Person {

private String name;

private int age;

public void tell () {

System.out.println(“姓名:”+name+”,年龄:”+age);

}

}

.targetClass(NewGoodBean.class)

主程序访问报错。做如下修改

.execute(listener);

public class Person {

private String name;

private int age;

public void tell () {

System.out.println(“姓名:”+ getName() +”,年龄:”+ getAge());

}

public void setAge(int age) {

this.age= age;

}

public int getAge() {

return age;

}

public void setName(String name) {

this.name= name;

}

public String getName() {

return name;

}

}

Person per =newPerson();

per.setName(“张三”);

per.setAge(-30);

per.tell();

备注:OkHttpUtils是基于okhttp3封装额下载框架

2、继承性

(2)方法重返值

(1)、类的持续格式

public class OhHttpUtils<T>{

class 父类 { }//定义父类

class 子类 extends 父类 {}// 使用extends 关键字贯彻一连

分子变量1

父类:

成员变量2

public class Person {

private String name;

private int age;

public void tell () {

System.out.println(“姓名:”+ getName() +”,年龄:”+ getAge());

}

public void setAge(intage) {

this.age= age;

}

public int getAge() {

return age;

}

public void setName(String name) {

this.name= name;

}

public String getName() {

return name;

}

}

….

通过子类增加父类的效劳

 

public class Student extends Person {

private String school;//定义新的特性

public void setSchool(String school) {

this.school= school;

}

public String getSchool() {

return school;

}

}

  public OkHttpUtils<T> url(String url){

⚠️:(1)、只同意多层继承,而无法多重继承

    mUrl = new StringBuilder(url);

图片 1

    return this;

(2)、继承的子类有时也称派生类

  }

图片 2

}

经过getter方法直接取得属性内容:

 

public voidfun() {

System.out.print(“父类中的name属性:”+ getName());

}

OkHttpUtils的卷入框架中,方法的重临值是 this

图片 3

 

3、多态性

3 普通调用&链式调用

图片 4

3.1 普通调用

图片 5

Person.class完结格局

三、抽象类与接口的拔取

public class Person{

1、抽象类的定义格式

  private String name;

abstract class  抽象类名称{

属性;

做客权限 重返值类型 方法名称(参数){ //普通方法

[return 返回值];

}

做客权限 abstract 重返值类型 方法名称(名称); // 抽象方法

// 在虚幻方法中是未曾方法体

}

abstract class Person {//定义抽象类person

private String name;//定义name属性

private  int age;// 定义age属性

public Person(String name,int age){//抽象类中的定义构造方法

this.setName(name);

this.setAge(age);

}

public void setName(String name) {

this.name= name;

}

public String getName() {

return name;

}

public void setAge(intage) {

this.age= age;

}

public int getAge() {

return age;

}

public abstract String getInfo();//取得音讯,抽象方法

}

class Student extends Person {

private String school;//定义新的习性

public Student(String name,intage, String school) {

super(name, age);

this.setSchool(school);

}

public void setSchool(String school) {

this.school= school;

}

public String getSchool() {

return school;

}

@Override

public String getInfo() {

return “姓名 “+super.getName() +

“; 年龄:”+super.getAge() +

“; 学校”+this.getSchool();

}

}

Student stu = new Student(“张三”,30,”清华大学”);

stu.getInfo();

  private int age;

2、接口的定义格式

  public Person(){}

interface 接口名称 {

大局常量;

虚幻方法;

}

interface A {

public static final String AUTHOR=”哈哈”;// 定义全局常量

public abstract void print();// 定义抽象方法

public abstract String getInfo();// 定义抽象方法

}

abstract class B {// 定义抽象类

public abstract void say();

}

class X extends B implements A {// 子类同时完毕接口

public void say() {// 覆写接口A中的抽象方法

System.out.print(“hello world!!”);

}

public String getInfo(){// 覆写接口A的抽象方法

return “HELLO”;

}

public void print() {// 覆写接口A中的抽象方法

System.out.print(“作者:” + AUTHOR);

}

}

  public setName(String name){

3、接口的多继承

    this.name = name;

interface 子接口 extends 父接口A,父接口B,父接口C,…. {

}

  }

4、抽象类的应用 ——模板设计

  public setAge(int age){

5、接口的应用 ——工厂形式、代理格局

    this.age = age;

图片 6

  }

四、万分的破获及处理

}

try{

// 有可能相当的拍卖语句

}catch(极度类 分外对象){

// 编写非常的拍卖语句

}

finally{

 //一定会运行到的程序代码

}

一般说来调用方式:
Person person = new Person();

五、 包及访问控制权限

person.setName(“Tony”);

1、访问权限:

person.setAge(11);

private:表示属性私有访问权限,只可以在本来中展开访问。

 

default:表示默许访问权限可以被本包中的其他类所访问,可是不能够被其他包的类所访问。

3.2链式调用形式

protected:表示受保证的走访权限。只好被本包及分化包的子类访问。

Person.class落成情势

public: 表示此方法可以被外表调用。

public class Person{

static: 表示此格局可以由类名称直接调用。

  private String name;

void:主方法是程序的源点,所以不要求任何重临值。

  private String age;

main:系统确定好默许调用的格局名称,执行时默许找到main方法类。

  public Person(){}

String args[]: 表示的是运作时的参数。参数传递的情势 “Java类名称 参数1
参数2 参数3 …”

  public Person setName(String name){

    this.name = name;

    return this;

  }

  public Person setAge(int age){

    this.age = age;

    return this;

  }

}

链式调用方式:
Person person = new Person()

person.setName(“Tony).setAge(11).setName(“张三”).setName(“李四”).setAge(12);

 

相关文章