java(面向对象基础)

面向对象的三大特征:封装、继承、多态

一、封装

用 类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。

封装规范:合理隐藏,合理暴露(先将成员变量全部隐藏起来,然后设计合理的方法来暴露给外界访问)

公开成员:可以使用public进行修饰。

隐藏成员:使用private进行修饰。

二、实体JavaBean

实体类

含义:一种特殊形式的类。

所具备的条件:1)这个类中的成员变量都要私有,并且要对外提供get,set的办法。

注:在diea中可以自动生成getters and setters的方法。

java(面向对象基础)_第1张图片

2)类中必须要有一个公共的无参的构造器

以下就是一个实体类的例子。

public class Student {
    //条件一:所有成员变量都要私有,并且要对外提供getters and setters的方法。
    private String name;
    private double score;

    //条件二:必须为类提供一个公开的无参数构造器。


    public Student() {
    }//可以通过点击右键,然后点击generate自动生成无参构造器。

    /*public Student(String name, double score) {
        this.name = name;
        this.score = score;
    }//同样可以通过点击generate自动生成有参构造器。*/

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }
}

特点:仅仅只是一个用来保存数据的java类,可以用它创建对象,保存某个事物的数据。

实体类的应用场景:

实体类只负责数据存取,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离。

二、常用API
a)包:是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护。

b)三大作用:

1)区分相同名字的类

2)当类很多时,可以很好地管理类[看Java API文档]

3)控制访问范围

建包不需要我们自己建立,idea会自动生成。

c)包的命名

1)命名规则

只能包含数字、字母、下划线、小圆点,但不能用数字开头,不能是关键字或保留字(goto,const)。

注:demo.12a//这个形式的命名也不行,因为在12a这个部分用了数字开头。

2)命名规范

一般是小写字母+小圆点

一般形式为com.公司名.项目名.业务模板块

例如:com.sina.crm.user//用户板块。

d)常用的包

java(面向对象基础)_第2张图片

e)包的引入

引入一个包的主要目的是要使用该包下的类。

建议:我们需要哪使用到哪个类,就导入哪个类型,不建议使用*的方式导入。

//第一种引用方式
import java.util.Scanner;//表示只会引入java.util包下的Scanner
//第二种引用方式
import java.util.*;//表示将java.util 包下的所有类都引入(导入)

f)包的注意事项和使用细节

1.package的作用是声明当前类所在的包,需要放在class或文件)(的最上面,一个类中最多只有一句package.

2.import指令位置放在package的下面,在类定义前面,可以有多句且没有顺序要求。

f)系统提供的array.sort函数

1)第一种形式 Array.sort(int[] arr)//以int类型的数组举例


import java.util.Arrays;

public class bag
{
    public static void main(String[] args) {
        int[] s={1,3,2,6,5};
        //系统提供了Arrays 完成 数组排序。
        Arrays.sort(s);
        for(int i=0;i<5;i++){
            System.out.println(s[i]);
        }
        //输出结果是1 2 3 5 6
    }
}

2) 第二种形式

Arrays.sort(int[] a, int fromIndex, int toIndex)//以类型为int的数组举例。

这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序

import java.util.Arrays;

public class bag
{
    public static void main(String[] args) {
        int[] s={1,3,2,6,5};
        //系统提供了Arrays 完成 数组排序。
        Arrays.sort(s,0,5);
        for(int i=0;i<5;i++){
            System.out.println(s[i]);
        }
        //输出结果是1 2 3 5 6
    }
}

3)第三种形式

三、访问修饰符

java提供四种访问控制修饰符号控制方法和属性(成员变量)的访问权限(范围):

1.公开级别:用public修饰,对外公开。

2.受保护级别:用protected修饰,对子类和同一个包中的类公开。

3.默认级别:没有修饰符号,向同一个包的类公开

4.私有级别:用priavte 修饰,只有类本身可以访问。

java(面向对象基础)_第3张图片

使用访问修饰符的注意事项:

1)修饰符可以用来修饰类中的属性,成员方法以及类。

2)只有默认的和public才能修饰类。

3)成员方法的访问规则和属性完全一样。

java(面向对象基础)_第4张图片

以下是定义的Account类。 

package object;

public class Account {
    private String name;
    private double money;
    private String password;

    public String getName()
    {
        return name;
    }

    public void setName(String name){
        if(name.length()==2||name.length()==3||name.length()==4){
            this.name=name;
        }else System.out.println("用户名错误");
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        if(money>20){
            this.money = money;
        }else System.out.println("金额错误");
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        if(password.length()==6){
            this.password = password;
        }else System.out.println("账户密码错误");
    }
}

以下是定义的AccountTest类

package object;

public class AccountTest {
    public static void main(String[] args) {
        Account n1=new Account();
        n1.setName("小王");
        n1.setMoney(21);
        n1.setPassword("103839");
    }
}

你可能感兴趣的:(java,开发语言)