【java基础】02-分类和static

1.分类思想

1.1分类思想概述:

分工协作,专人干专事

1.2分类示例(学生信息管理系统)

  • Student类 标准学生类,封装键盘录入的学生信息(id , name , age , birthday)

  • StudentDao类 Dao : (Data Access Object 缩写) 用于访问存储数据的数组或集合

  • StudentService类 用来进行业务逻辑的处理(例如: 判断录入的id是否存在)

  • StudentController类 和用户打交道(接收用户需求,采集用户信息,打印数据到控制台)

要点

分类的思想,不同的类做不同的事,分工明确,更便于维护(例如:CPU,内存,硬盘)

分包思想,假如一个项目需要开发10000个类,不能都放一个包下,最好将相关功能的一系列类放一个包下,分门别类管理,便于维护,还可以预防类重名。(不同的包下允许有同名的类)

Controller: 前台客服接待(负责输入和输出)
Service: 业务员,处理业务逻辑(目前业务员处理的业务很简单,例如:判断学号是否存在,其他的crud(增删改查),直接调用dao)
Dao: 负责数据的保存和获取,用集合或数组保存

请求流程

Controller---调用---->Service-------调用--------->Dao(不能跨层调用,例如Controller不能直接掉用dao)	

返回流程

​Dao-----------返回----->Service-------返回--------->Controller(不能跨层返回,Dao不能直接返回给Controller)

2.包的概述和定义

2.1分包思想概述

如果将所有的类文件都放在同一个包下,不利于管理和后期维护,所以,对于不同功能的类文件,可以放在不同的包下进行管理

2.2包的概述

  • 本质上就是文件夹

  • 创建包

    多级包之间使用 " . " 进行分割
    多级包的定义规范:公司的网站地址翻转(去掉www)
    比如:www.bibabo.com
    后期我们所定义的包的结构就是:com.bibabo.其他的包名

  • 包的命名规则

    字母都是小写

要点:

​     1.包的作用?

​			对类进行分类管理(相关系列功能的类放一个包下,例如:java.util包, Scanner,Random,)
​			防止类重名(不同的包下,允许有同名的类)

​	2.包的定义格式(一般 idea 都会自动帮我们写上)

​			package com.bibabo.domain;

​	3.包的命名规则?

​			全部小写
​		   	公司域名倒置.项目名.功能模块名
​			com.bibabo.studentmanager.controller
​			com.bibabo.studentmanager.service
​			com.bibabo.studentmanager.dao
​			com.bibabo.studentmanager.domain

3.包的注意事项和类访问

  • package语句必须是程序的第一条可执行的代码
  • package语句在一个java文件中只能有一个
  • 如果没有package,默认表示无包名

类与类之间的访问:

  • 同一个包下的访问

    不需要导包,直接使用即可

  • 不同包下的访问

    1.import 导包后访问

    2.通过全类名(包名 + 类名)访问

  • 注意:import 、package 、class 三个关键字的摆放位置存在顺序关系

    package 必须是程序的第一条可执行的代码

    import 需要写在 package 下面

    class 需要在 import 下面

要点:

1.一是包的注意事项,二是带包的类的访问

2. 包的注意事项 
   	- package 语句必须是程序的第一条可执行的代码 
	- package 语句在一个java文件中只能有一个 
	- 如果没有 package 声明,表示在一个默认包下

3. 同一个包下的访问
   ​		不需要导包,直接使用即可
   不同包下的访问
   ​		1.import 包名.类名; // import java.util.Scanner;  //导入包下所有的类
							//import java.util.*;
   ​		2.通过全类名(包名.类名)访问,例如:
       				java.util.Scanner sc = new java.util.Scanner(System.in);

4. class,package,import,先后顺序?
    
    
    package com.bibabo.demo1;
    import java.util.Scanner;
	import java.util.Random;
    class A {
        
    }
 	class B {
        
    }	

注意:    
	一个java文件可以写多个类,但是,只能有一个类可以用 public 修饰,并且文件名必须和 public 修饰的类名一样.

static关键字特点

static 关键字

static关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量
static修饰的成员变量,一般叫做静态变量(静态变量也叫类变量)
static修饰的成员方法,一般叫做静态方法(静态方法也叫类方法)

static修饰的特点:

  • 被类的所有对象共享

  • 随着类的加载而加载,优先于对象存在

  • 可以通过类名来调用

总结:

1.static 关键字,可以修饰 成员变量 和 成员方法, static 修饰的成员变量称为 类变量,static 修饰的方法称为 类方法.
2.static 修饰成员变量,该成员变量只有一份,创建多个对象,都共享这一份.
3.static 修饰方法,该方法除了使用"对象名."调用外,还可以直接通过 "类名." 调用,调用更方便!    
4.static 方法内只能访问 static 成员! 
5.static 方法内不能使用 this!
6.类的 static 成员随着类的加载而加载,优先于对象先存在!(静态先加载,只加载一次,对象后创建,可以创建多个)
    
 开发相关:
 2.static 修饰成员变量,该成员变量只有一份,创建多个对象,都共享这一份. 
 3.static 修饰方法,该方法除了使用对象名.调用外,还可以直接通过 "类名." 调用,调用更方便!
   static 方法内只能访问 static 成员! 

版权声明:本文为Nusret原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。