1.什么是类?
1.类---类型---数据类型---复合数据类型---自定义复合数据类型
基本数据类型就8中,在开发中远远不够,所以我们就需要一个可以根据自己的需求随时能制作出一个自己需要的数据类型。
2.将性质或特征相同的元素抽象出来的事物,在java中用来描述具有性质或特质相同的元素,抽象出来的自定义复合数据类型
2创建java类
通过class关键字创建java类
格式:【public】class类名{}
【public】---访问限制修饰符
class---创建类的关键字,是类的标志
类名---首字母大写
{}---类体,放的内容具有性质或特征相同的元素
例如:
public class Student{} ---- 任何地方都可以 访问
class Person{} ---- 只能被同一个报中的类访问
3.Java类体{}中可以编写什么?
{}---放的内容具有性质或特征相同的元素,具有性质或特征相同的元素是用来描述一组事物
如何描述一句具体的事物?
自我介绍
名字--地址--年龄--->基本属性
工作--爱好--->基本功能
我们在描述一个具体事物时是通过从基本属性和基本功能开始的。
{}---某一组事物的相同基本属性和相同基本功能
{}---属性和功能
{}---变量和方法
4.Java类中的变量
1.变量的本质就是保存数据
2.变量组成有1.数据类型 2.变量名称 3.初始值 4.作用域
3.变量用来描述事物的基本属性
4.变量一定定义在类中
5.变量的分类:
1.类中方法外---全局变量【成员变量】
可以使用访问限制修饰符【public 缺省的{友好的}】
2.可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
3.可以在本类中的任意一个方法中被使用
例如:
package com.wangxing.test;
public class QuanJu{
public int quanju1=100;
int quanju2=200;
//方法一中调用全局变量
public void Quanju1(){
System.out.println("quanju1=="+quanju1);
System.out.println("quanju2=="+quanju2);
}
//方法二中调用全局变量
public void Quanju2(){
System.out.println("quanju1=="+quanju1);
System.out.println("quanju2=="+quanju2);
}
}
测试类:
package com.wangxing.test;
public class TestMain {
public static void main(String[] args) {
//测试类
QuanJu test1=new QuanJu();
test1.Quanju1();
test1.Quanju2();
}
}
2.类中方法里【方法参数】---局部变量
1.不能使用访问限制修饰符
2.必须设置初始值
3.只能在本方法中使用
例如:
package com.wangxing.test;
public class JuBu {
public void Jubu1(){
//不能使用访问限制修饰符
//必须设置初始值
int jubu1=1001;
String jubu2="张三";
//只能在本方法中调用
System.out.println("学号=="+jubu1);
System.out.println("姓名=="+jubu2);
}
public void Jubu2(){
int jubu11=1002;
String jubu22="李四";
System.out.println("学号=="+jubu11);
System.out.println("学号=="+jubu22);
}
}
测试类
package com.wangxing.test;
public class TestMain {
public static void main(String[] args) {
//测试类
JuBu test1=new JuBu();
test1.Jubu1();
test1.Jubu2();
}
}
6.成员变量的隐藏
在同一个类中成员变量与某一个方法中的局部变量的名称相同,这时我们在方法中使用这个成员变量的时候,得到的结果就是局部变量的值,此时就是方法中的局部变量将类中成员变量的值隐藏了,这就是成员变量的隐藏。
如果需要在方法中使用被隐藏的成员变量的值怎么办?---使用this.成员变量名称就可以得到被隐藏的成员变量值
例如:
package com.wangxing.test;
public class YinCan {
int id1=1001;
public void Yincang(){
int id1=1001;
System.out.println("id=="+id1);
System.out.println("this.id=="+this.id1);
}
}
测试类
package com.wangxing.test;
public class TestMain {
public static void main(String[] args) {
//测试类
YinCan test1= new YinCan();
test1.Yincang();
}
}
7.静态成员变量与实例变量
1.静态成员变量与实例变量都是成员变量
2.静态成员变量是用过static关键字修饰的
3.实例变量就是普通的成员变量,没有使用static关键字修饰的成员变量
实例变量---成员变量
1.可以使用访问限制修饰符【public 缺省的{友好的}】
2.可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值
3.可以在本类中任意一个方法中被使用
4.只能被对象访问
5.不能在同一个类对象之间共享数据值
静态成员变量【类变量】---成员变量
1.可以使用访问限制修饰符【public 缺省的{友好的}】
2.可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值
3.可以在本类中的任意一个方法中被使用
4.可以被对象访问,也可以用类名访问
5.能在同一类对象之间共享数据值
例如:
package com.wangxing.test;
public class ChengYuan {
//静态成员变量
public static int intnum=100;
//实例成员变量
public int intnum1=200;
public void chengyuan1(){
System.out.println("intnum方法1=="+intnum);
System.out.println("intnum1方法1=="+intnum1);
}
public void chengyuan2(){
System.out.println("intnum方法2=="+intnum);
System.out.println("intnum1方法2=="+intnum1);
}
}
package com.wangxing.test;
public class TestMain {
public static void main(String[] args) {
//测试类
ChengYuan test1=new ChengYuan();
ChengYuan test2=new ChengYuan();
test1.chengyuan1();
test1.chengyuan2();
test2.chengyuan1();
test2.chengyuan2();
}
}
package com.wangxing.test;
public class TestMain {
public static void main(String[] args) {
//测试类
ChengYuan test1=new ChengYuan();
ChengYuan test2=new ChengYuan();
//通过第一个对象修改静态成员变量与实例成员变量的值
test1.intnum=1002;
test1.intnum1=201;
test1.chengyuan1();
test1.chengyuan2();
//静态成员变量能在同一个类对象之间共享数据值
//实例成员变量不能在同一个对象之间共享数据值
test2.chengyuan1();
test2.chengyuan2();
}
}
package com.wangxing.test;
public class TestMain {
public static void main(String[] args) {
//测试类
ChengYuan test1=new ChengYuan();
ChengYuan test2=new ChengYuan();
System.out.println(ChengYuan.intnum);//静态成员变量可以通过类名访问.
System.out.println(test1.intnum1);//实例成员变量之能通过对象访问.
}
静态成员变量与实例变量的区别?
参考图片



