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

1167156-20181130145245050-1541527195.png
静态区域块: 
1167156-20181130145245865-1212615690.png
 
构造函数: public  Demo3_2()
1167156-20181130145246393-336811972.png
主函数:public static void main(String  []args)
1167156-20181130145246995-712663231.png
 打印出3和4;
1167156-20181130145247373-151620418.png
 当类被定义的时候,和类定义的信息已经被写到代码区了
 ,静态区域块被自动执行。

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

1167156-20181130145248687-1107106327.png

  1167156-20181130145249212-897757125.png
 JAVA里面的原则:尽可能把成员属性做成私有的;

   1167156-20181130145249589-729433737.png
 构造函数;
 
1167156-20181130145249884-68577241.png
 
1167156-20181130145250328-102784970.png
 通过这种被授权的方式 public去访问私有的被封装的部分

   1167156-20181130145250937-839660179.png
  1167156-20181130145251336-556560754.png
以工程或者项目的形式来管理的;
 
1167156-20181130145251970-1427402845.png
 建立一个类;

1167156-20181130145253863-1030929915.png
 
1167156-20181130145255378-1997950733.png
Gneral-Application-Appearance-Colors and Fonts(粗体,16)

  1167156-20181130145255687-2059598437.png
双击头菜单,改变开发窗口的大小;

1167156-20181130145256135-405774977.png
1167156-20181130145256748-983616152.png
 Eclipse特点:当你保存的时候自动编译;
 波浪线提示语法错误;根据这样去排错;

1167156-20181130145257414-778700200.png
 删除delete;

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

1167156-20181130145258531-860642749.png
建立两个包;

 1167156-20181130145259107-92696190.png
 有包可以区分相同名字的类Dog;

 1167156-20181130145300027-1933989151.png

 1167156-20181130145300384-1379391148.png
 把你生成的class字节码放在xiaoming的包里面;

 1167156-20181130145300787-1311110330.png
 
 1167156-20181130145301218-111714113.png
 1167156-20181130145301566-806163159.png
 1167156-20181130145301975-1834075320.png
 rt.jar
 所有的字节码文件通通被打成一个大包;
 1167156-20181130145302734-1270087412.png
 

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

什么是类变量?

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

 

如何定义类变量?

定义语法:

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

 

如何访问类变量?

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

//类变量的程序演示[Demo114.java] public class Demo114{ static int i=1; static{ //该静态区域块只被执行一次 i++; System.out.println("执行一次"); } public Demo114(){ //建立Demo114()构造函数 System.out.println("执行二次"); i++; } public static void main(String []args){ Demo114 t1=new Demo114(); //创建t1对象实例并调用Demo114函数 System.out.println(t1.i); Demo114 t2=new Demo114(); System.out.println(t2.i); } }
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
}
1167156-20181130145304788-215713716.png
 

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

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

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

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

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

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

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

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

//统计总学费的程序代码,加深static静态的方法由静态变量的访问[Demo115.java] public class Demo115{ public static void main(String []args){ //创建一个学生 Stu stu1=new Stu(29,"aa",340); Stu stu2=new Stu(29,"aa",240); System.out.println(Stu.getTotalFee()); } } //学生类 class Stu{ int age; String name; int fee; static int totalFee; public Stu(int age,String name,int fee){ this.age=age; this.name=name; totalFee+=fee; } //返回总学费[这是一个类方法(静态方法)] //java中规则:类变量原则上用类方法去访问或操作 public static int getTotalFee(){ return totalFee; } }
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
}
1167156-20181130145305184-164903565.png
 

 

类变量小结

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

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

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

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

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

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

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

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

类方法小结


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

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

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

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

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

 

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

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

抽象/封装/继承/多态

 

抽象

1、简单理解

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

 

封装--什么是封装

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

 

封装--访问控制修饰符

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

//封装案例[Demo116.java] public class Demo116{ public static void main(String []args){ //创建一个职员 Clerk clerk1=new Clerk("小花",24,4567.6f); System.out.println("名字是"+clerk1.name+"薪水"+clerk1.getSal()); } } //职员 class Clerk{ public String name; //private私有的,public公有的 private int age; private float salary; public Clerk(String name,int age,float sal){ this.name=name; this.age=age; this.salary=sal; } //通过一个成员方法去控制和访问私有的属性 public float getSal(){ return this.salary; } }
 
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
}
1167156-20181130145305765-1513797245.png
 

 

封装--访问控制修饰符

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 类名{ 

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

                }               成员方法;       构造方法;

                                }               成员方法;

                                                }





   










 




转载于:https://www.cnblogs.com/xuxaut-558/p/10044156.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值