打赏

JAVA入门到精通-第9讲-类.方法.封装

静态区域块: 
 
构造函数: public  Demo3_2()
主函数:public static void main(String  []args)
 打印出3和4;
 当类被定义的时候,和类定义的信息已经被写到代码区了
 ,静态区域块被自动执行。

   
 这样的话,所有对象共享一个类方法;
 
 java中规则:类变量原则上用类方法去访问;
  
  静态的方法只能访问静态的变量;
 非静态的方法既可以访问静态的变量也可以访问非静态的变  量;


 
 JAVA里面的原则:尽可能把成员属性做成私有的;

  
 构造函数;
 
 
 通过这种被授权的方式public去访问私有的被封装的部分

  
 
以工程或者项目的形式来管理的;
 
 建立一个类;

 
Gneral-Application-Appearance-Colors and Fonts(粗体,16)

 
双击头菜单,改变开发窗口的大小;

 Eclipse特点:当你保存的时候自动编译;
 波浪线提示语法错误;根据这样去排错;

 删除delete;

 建立一个包,包名是小写的,不超过5层;
 com.xiaoming

建立两个包;

 
 有包可以区分相同名字的类Dog;

 

 
 把你生成的class字节码放在xiaoming的包里面;

 
 
 
 
 
 rt.jar
 所有的字节码文件通通被打成一个大包;
 
 

java面向对象编程(2)--类变量、类方法

什么是类变量?

类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。

 

如何定义类变量?

定义语法:

    访问修饰符 static 数据类型 变量名;

 

如何访问类变量?

    类名.类变量名  或者  对象名.类变量名

20
 
1
//类变量的程序演示[Demo114.java]
2
public class Demo114{
3
    static int i=1;
4
    static{
5
        //该静态区域块只被执行一次
6
        i++;
7
        System.out.println("执行一次");
8
    }
9
    public Demo114(){  //建立Demo114()构造函数
10
        System.out.println("执行二次");
11
        i++;
12
    }
13
    public static void main(String []args){
14
        Demo114 t1=new Demo114();  //创建t1对象实例并调用Demo114函数
15
        System.out.println(t1.i);
16
 
17
        Demo114 t2=new Demo114();
18
        System.out.println(t2.i);
19
    }
20
}
 

-------------------------------------------------------------------------------

什么是类方法,为什么有类方法?

类方法是属于所有对象实例的,其形式如下:

    访问修饰符 static 数据返回类型 方法名(){}

注意:类方法中不能访问非静态变量(类变量)

使用:类名.类方法名 或者 对象名.类方法名

*重点*static静态的方法可以访问static静态变量,不能访问非静态变量(类变量)

      非静态方法可以访问非静态变量(类变量)同时也可以访问static静态变量。

x
 
1
//统计总学费的程序代码,加深static静态的方法由静态变量的访问[Demo115.java]
2
public class Demo115{
3
    public static void main(String []args){
4
        //创建一个学生
5
        Stu stu1=new Stu(29,"aa",340);
6
        Stu stu2=new Stu(29,"aa",240);
7
        System.out.println(Stu.getTotalFee());
8
    }
9
}
10
 
11
//学生类
12
class Stu{
13
    int age;
14
    String name;
15
    int fee;
16
    static int totalFee;
17
    public Stu(int age,String name,int fee){
18
        this.age=age;
19
        this.name=name;
20
        totalFee+=fee;
21
    }
22
    //返回总学费[这是一个类方法(静态方法)]
23
    //java中规则:类变量原则上用类方法去访问或操作
24
    public static int getTotalFee(){
25
        return totalFee;
26
    }
27
}
 

 

类变量小结

1、什么时候需要用类变量

案例[Demo115.java]:定义学生类,统计学生共交多少钱?

用类变量,属于公共的属性

2类变量与实例变量区别:

加上static称为类变量或静态变量,否则称为实例变量

类变量是与类相关的,公共的属性

实例变量属于每个对象个体的属性

类变量可以通过 [类名.类变量名]  直接访问

类方法小结


1、什么时候需要用类方法

案例[Demo115.java]:定义学生类,统计学生共交多少钱?

类方法属于与类相关的,公共的方法

实例方法属于每个对象个体的方法

类方法可以通过 [类名.类方法名]  直接访问

 

-------------------------------------------------------------------------------

java面向对象编程的四大特征

抽象/封装/继承/多态

 

抽象

1、简单理解

我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版)。这种研究问题的方法称为抽象。

 

封装--什么是封装

封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。

 

封装--访问控制修饰符

电视机的开关,对音量,颜色,频道的控制是公开的,谁都可以操作,但是对机箱后盖,主机板的操作却不是公开的,一般是由专业维修人员来玩。那么java中如何实现这种类似的控制呢?不能随便查看人的年龄,工资等隐私[Demo116.java]

 
1
//封装案例[Demo116.java]
2
public class Demo116{
3
    public static void main(String []args){
4
        //创建一个职员
5
        Clerk clerk1=new Clerk("小花",24,4567.6f);
6
        System.out.println("名字是"+clerk1.name+"薪水"+clerk1.getSal());
7
    }
8
}
9
//职员
10
class Clerk{
11
    public String name;
12
    //private私有的,public公有的
13
    private int age;
14
    private float salary;
15
 
16
    public Clerk(String name,int age,float sal){
17
        this.name=name;
18
        this.age=age;
19
        this.salary=sal;
20
    }
21
    //通过一个成员方法去控制和访问私有的属性
22
    public float getSal(){
23
        return this.salary;
24
    }
25
}
 

 

封装--访问控制修饰符

java提供四种访问控制修饰符号控制方法和变量的访问权限:

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

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

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

4、私有级别:用private修饰,只有类本身可以访问,不对外公开

4种访问级别的访问范围

访问级别

访问控制修饰符

同类

同包

子类

不同包

 

Public

受保护

Protected

 

没有修饰符

 

private

 

--必要性

问题的提出,请看下面的一个场景[eclipse]

现在有两个程序员共同开发一个java项目,程序员xiaoming希望定义一个类取名Dog,程序员xiaoqiang也想定义一个类也叫Dog。两个程序员为此还吵了起来,怎么办?

 

--三大作用

1、区分相同名字的类

2、当类很多时,可以很好的管理类

3、控制访问范围

 

--换包命令

package com.自定义名字;

注意:打包命令一般放在文件开始处。

 

--命名规范

小写字母 比如 com.sina.shunping

 

--常用的包

一个包下,包含很多的类,java中常用的包有:

java.lang.*   自动引入    java.util.* 工具包

java.net.*    网络开发包  java.awt.* 包 窗口工具包

 

--如何引入包

语法:import ;

比如import java.awt.*;

我们引入一个包的主要目的要使用该包下的类

 

定义类的改进

在提出包后,我们类的定义就更加完善了:

class 类名{     class 类名{     class类名{      package包名;        待定..

成员变量;     成员变量;     成员变量;     class 类名{ 

}               成员方法;       构造方法;       成员变量;

                }               成员方法;       构造方法;

                                }               成员方法;

                                                }





   










 




posted on 2018-11-30 14:53  XuCodeX  阅读(297)  评论(0编辑  收藏  举报

导航