安卓开发用到的java知识_[Java]开发安卓,你得掌握的Java知识4——“类” 其之二...

目录

1.本文主要内容简介

2.“类”的知识补充

3.总结

0.前言

本文重点在于讲解Java中类的相关知识的后半部分

若想要了解“类”的知识的前半部分,可以去看前面的文章

《[Java]开发安卓,你得掌握的Java知识3》

由于最终目的是要开发安卓app,

因此这里使用的IDE是AS(Android Studio)

(不会使用的可以参考下面这篇文章中的例子)

《[Java]开发安卓,你得掌握的Java知识2》

1.本文主要内容简介

类的基础知识补充

对应知识的相关细节

实际例子

2.“类”的基础知识补充

《[Java]开发安卓,你得掌握的Java知识3》中,

讲解了“类”的基础概念、属性、方法、对象等概念

本文我们则补充讲解:setter/getter、静态方法、单例设计模式、重载

什么是“setter/getter”

当类中的属性被设置为私有的(private)时候,外部无法随便访>问该变量

此时,如果还是想要在外部对对象的属性进行访问,使用setter/getter就是方法之一

setter就是一个接收器,如果拿人作为例子,

setter相当于是手。

别人给我们食物,一般不会也没办法给到我们的嘴里

因为我们的嘴是私有的

我们会用手去接收别人给过来的食物,然后放到嘴里,这就类似于setter的功能

public Person{

public String name;

private int age;

private int id;

}

如上代码,age和id是不能通过对象直接在外部访问的

Person p = new Person();

p.name = "小王"; //可以

p.age = 20; //不行,私有变量不能直接外部访问

p.id = 001;//不行,私有变量不能直接外部访问

不能直接外部访问,就得考虑使用setter/getter:

public Person{

public String name;

private int age;

private int id;

public void setAge(int age){

this.age = age;

}

public int getAge(){

return this.age;

}

public void setId(int id){

this.id = id;

}

public int getId(){

return this.id;

}

}

如此就可以在外部调用对应的函数来赋值、获取值:

Person p =new Person();

p.setAge(20);

System.out.println(p.getAge());//输出为20

什么是静态属性、方法

在上一篇文章中,我们已经大致讲过了静态方法的定义与使用

这里我们再次统一讲解一下

(1)从外观角度来说,

使用static修饰的属性变量、方法就是静态属性、静态方法

(2)从使用的角度来说,

静态属性、方法是可以直接使用类名.属性名或类名.方法的形式来调用的

(3)从内存的角度来说,

静态的属性、方法会在对象创建之前优先加载

需要注意:

什么时候使用静态方法?

一般是不需要对象去完成的方法,会写成静态方法

(不需要对象一般情况意味着不需要实例化对象,使用对象的属性来记录数据)

什么时候使用静态属性?

当需要定义一个不会再改变的常量的时候,会写成静态属性

(静态的属性只能赋值一次)

class Subject{

public static String[] name= {"计算机","数学","英语"};

}

class Person{

public static void sayHello(){

System.out.println("hello");

}

}

什么是单例设计模式

在一些程序中,会使用到类似管理器的东西,这种管理器如果创建出一个对象,会出现:无法保证程序的任意地方都能访问到该对象的问题(也不能重新创建一个对象)

为了避免这个问题,同时还要防止全局变量的产生,就需要用到单例设计模式

public PersonManager{

//1.创建一个静态的变量

public static PersonManager manaer = new PersonManager();

//2.构造函数私有化

private PersonManager(){}

public void showPerson(){

//具体函数定义

}

}

public staitc void main(String[] args){

PersonManager.manager.showPerson();

}

单例设计模式的具体实现步骤就是:

(1)将构造方法私有化

(2)创建一个静态的变量

以后要调用这个类的函数,则不要去实例化创建对象,而是用:

类名.manager.方法()的格式

(manager可以改,看你具体定义的时候写的是什么)

这样就可以避免类的对象因为作用域问题,

而在一些地方无法被调用的尴尬问题

什么是重载

所谓重载,简单来说,就是当函数a已经存在时,通过改变函数a的返回值、参数个数、参数类型中的一个或多个,而产生的同名但是返回值、参数、函数具体内容有一些不同的函数b

public void showText(String text){

System.out.println(text);

}

public void showText(int num){

System.out.println("num ="+num);

}

public int showText(int num){

if(num==1){

return 1;

}else{

System.out.println("num ="+num);

return 0;

}

}

同样是叫做showText,但是这三个函数却不尽相同,这就是函数的重载。

在调用的时候,根据返回值、参数的不同,会自动判断使用哪个函数

3.总结

(1)基本上将类的知识讲完了(还有一些日后再补充),有了这些知识基本上就可以正式去写一些Java代码了

(2)这里没有贴出实际例子,知识给了一些临时例子的理由是,面向对象的思维使得程序中各个部分都尽可能地形成了一个整体,零散的代码其实意义不大

(3)如果说C语言写代码时,要将问题尽可能往程序上靠拢,让问题服务于代码,那么Java可以说是反过来,让程序尽可能贴近于现实,将一切都尽可能地形成一个整体(封装),而不是只是在堆砌函数

(4)因此在日后,当某个程序写的比较完整后,才会考虑将代码贴出并且进行详细分析

你可能感兴趣的:(安卓开发用到的java知识)