面向对象的三大特征:封装、继承、多态
一、封装
用 类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。
封装规范:合理隐藏,合理暴露(先将成员变量全部隐藏起来,然后设计合理的方法来暴露给外界访问)
公开成员:可以使用public进行修饰。
隐藏成员:使用private进行修饰。
二、实体JavaBean
实体类
含义:一种特殊形式的类。
所具备的条件:1)这个类中的成员变量都要私有,并且要对外提供get,set的办法。
注:在diea中可以自动生成getters and setters的方法。
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)常用的包
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 修饰,只有类本身可以访问。
使用访问修饰符的注意事项:
1)修饰符可以用来修饰类中的属性,成员方法以及类。
2)只有默认的和public才能修饰类。
3)成员方法的访问规则和属性完全一样。
以下是定义的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");
}
}