temporal java 封装工具 java.封装_类方法

静态区域块: 

temporal java 封装工具 java.封装_类变量_02

 

构造函数: public  Demo3_2()

temporal java 封装工具 java.封装_java_03

主函数:public static void main(String  []args)

temporal java 封装工具 java.封装_java_04

 打印出3和4;

temporal java 封装工具 java.封装_类变量_05

 当类被定义的时候,和类定义的信息已经被写到代码区了

 ,静态区域块被自动执行。


   

temporal java 封装工具 java.封装_类变量_06

 这样的话,所有对象共享一个类方法;

 

temporal java 封装工具 java.封装_类方法_07

 java中规则:类变量原则上用类方法去访问;

  

  静态的方法只能访问静态的变量;

 非静态的方法既可以访问静态的变量也可以访问非静态的变  量;


temporal java 封装工具 java.封装_类方法_08


 

temporal java 封装工具 java.封装_temporal java 封装工具_09

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


  

temporal java 封装工具 java.封装_java_10

 构造函数;

 

temporal java 封装工具 java.封装_类变量_11

 

temporal java 封装工具 java.封装_类方法_12

public去访问私有的被封装的部分


  

temporal java 封装工具 java.封装_类变量_13

 

temporal java 封装工具 java.封装_java_14

以工程或者项目的形式来管理的;

 

temporal java 封装工具 java.封装_temporal java 封装工具_15

 建立一个类;


temporal java 封装工具 java.封装_temporal java 封装工具_16

 

temporal java 封装工具 java.封装_类方法_17

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


 

temporal java 封装工具 java.封装_java_18

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


temporal java 封装工具 java.封装_temporal java 封装工具_19

temporal java 封装工具 java.封装_temporal java 封装工具_20

 Eclipse特点:当你保存的时候自动编译;

 波浪线提示语法错误;根据这样去排错;


temporal java 封装工具 java.封装_类变量_21

 删除delete;


temporal java 封装工具 java.封装_类变量_22

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

temporal java 封装工具 java.封装_java_23

建立两个包;
 

temporal java 封装工具 java.封装_temporal java 封装工具_24

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

temporal java 封装工具 java.封装_temporal java 封装工具_25


 

temporal java 封装工具 java.封装_java_26

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

temporal java 封装工具 java.封装_java_27

   

temporal java 封装工具 java.封装_temporal java 封装工具_28

 

temporal java 封装工具 java.封装_类变量_29

 

temporal java 封装工具 java.封装_temporal java 封装工具_30

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

temporal java 封装工具 java.封装_temporal java 封装工具_31

 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

}


temporal java 封装工具 java.封装_类方法_32


-------------------------------------------------------------------------------什么是类方法,为什么有类方法?类方法是属于所有对象实例的,其形式如下:    访问修饰符 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

}


temporal java 封装工具 java.封装_类方法_33



 类变量小结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

}


temporal java 封装工具 java.封装_类变量_34



 封装--访问控制修饰符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 类名{  →}               成员方法;       构造方法;       成员变量;                }               成员方法;       构造方法;                                }               成员方法;                                                }