1.类是什么
1.类–类型–数据类型—复合数据类型—自定义复合数据类型
为什么有复合数据类型?
基本数据类型就8种,在开发中远远不够,所以我们就需要一个可以根据自己的需求随时能制作出一个自己需要的数据类型。
2.类–具有共同性质的一组事物的群体。 人类。那么Java中的类就是 用来描述具有共同性质的一组事物的自定义的复合数据类型—类。
复合数据类型的本质—【根据自己的需求制作自己需要的数据类型的模式/规则/公式】
2.如何创建一个类
一般我们都是通过class关键字来创建类的
例如
package TheClass; /** * 1.public---访问限制修饰符【对类的访问权限】 * 2.class---创建类的关键字【类的标志】 * 3.Xue---类名【首字母大写】 * 所以类的创建格式是:访问权限修饰符+class关键字+类名+{} */ public class Xue { } class Hello{ }
其格式是
所以类的创建格式是:访问权限修饰符+class关键字+类名+{}
3.类中可以编写什么
基本属性------变量---用于保存数据
基本功能-----方法
变量–是用来在类中描述事物的基本属性
方法–是用来在类中描述事物的基本功能public class Xue { // 属性:变量 int number=1; // 方法:具体功能 public void sort(){ // 功能为加法运算 System.out.println(number + number); } }
4.类中的变量
4.1.类中的变量应有的属性包括:
1.数据类型【不一定就是之前的基本数据类型,也有可能是自定义的复合数据类型】
2.变量名称【合法标识符–全字母小写】
3.初始值
4.作用域
4.2类中的变量的分类
按照在类中编写变量的位置划分:
1.成员变量【全局变量】—类中方法外
(1).可以使用访问限制修饰符,也可以不使用。
(2).可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
(3).可以在本类中的任意一个方法中被使用public class Student{ public int stu1;//可以使用访问限制修饰符 Int stu2;//也可以不使;用限制修饰符[缺省的访问限制修饰符] public String stuname1;//可以不用赋予初始值,系统自动赋予默认值 public String stuname2="liuming";//也可以根据需要自己设置一个初始值。 //成员变量【全局变量】---可以在本类中的任意一个方法中被使用 public void testM1(){ System.out.println("stu1=="+stu1); System.out.println("stuname2=="+stuname2); } public void testM2(){ System.out.println("stu1=="+stu1); System.out.println("stuname2=="+stuname2); } public void testM_n(){ System.out.println("stu1=="+stu1); System.out.println("stuname2=="+stuname2); } } public class Shu3{ public static void main(String args[]){ Student stu1=new Student(); stu1.testM1(); stu1.testM2(); } }
2.局部变量-----------------------方法里/方法参数
(1).不能使用访问限制修饰符。
(2).必须设置初始值
(3).只能在本方法中使用。class Xue { //方法1--testM1 public void testM1() { //public char sex;//不能使用访问限制修饰符。 //char sex;//必须设置初始值 char sex = '男';//局部变量 //sex变量只能在本方法中使用 System.out.println("sex==" + sex); } //方法2-textM2 public void textM2() { //sex变量只能在testM1方法中使用,超出texstM1方法就不能使用 //这里的sex是会变红的 System.out.println("sex=="+sex); } } public class XueXi { public static void main(String args[]) { Xue stu = new Xue(); stu.testM1(); } }
4.3:成语变量的隐藏
在同一个类中成员变量与某一个方法中的局部变量的名称相同,这是我们在方法中使用这个成员变量的时候,得到的结果是局部变量的值,此时就是方法中的局部变量将类中成员变量的值隐藏了,这就是成员变量的隐藏。
即当全局变量(成员变量)和成员变量名字相同时,方法类优先考虑局部变量
public class User{
//成员变量
public String username="liming";
public void testM1(){
//局部变量
char username='C';
//成员变量的隐藏
//成员变量的隐藏与变量数据类型无关,只与变量名称有关。
System.out.println("username=="+username);//username=C
//如果我们需要强制使用被隐藏的成员变量,该怎么办?
//通过this访问被隐藏的成员变量
System.out.println("username=="+this.username);//username=liming
}
}
4.4:静态成员变量
成员变量【全局变量】可以分为2种
按照成员变量【全局变量】是否使用static关键字
静态成员变量【类变量】—使用static关键字修饰的成员变量【全局变量】
实例变量—没有使用static关键字修饰的成员变量【全局变量】
static关键字—静态的—》提前分配存储数据的内存空间
没有使用static关键字修饰的元素,是在程序运行时分配存储数据的内存空间。
使用static关键字修饰的元素,是在程序运行前分配存储数据的内存空间。public class Xx{ public int Xxid=1001; //静态成员变量【类变量】 public static String classname="学习班"; //静态成员变量【类变量】 static String classcode="20202020"; }