大家好,又见面了,我是你们的朋友全栈君。
4.1.类是什么?
1.类–类型–数据类型—复合数据类型—自定义复合数据类型
为什么有复合数据类型?
基本数据类型就8种,在开发中远远不够,所以我们就需要一个可以根据自己的需求随时能制作出一个自己需要的数据类型。
2.类–具有共同性质的一组事物的群体。 人类。
在java中用来描述具有共同性质的一组事物的自定义的复合数据类型—类。
复合数据类型的本质—【根据自己的需求制作自己需要的数据类型的模式/规则/公式】
4.2.如何编写一个Java类?
通过class关键字来创建一个类
{}—-类体
例如:
public class Xue{
//public---访问限制修饰符【对类的访问权限】
//class---创建类 的关键字【类的标志】
//Hello--类名【首字母大写】
}
格式:
访问限制修饰符 class 类名{}
例如:
public class Student{
}
class User{
}
4.3.Java类中可以编写什么?
描述一组事物的共同性质
杯子–名字 形状 大小 颜色 装东西
名字,形状,大小,颜色—–基本属性
装东西—基本功能
通过事物的基本属性和基本功能来描述具有共同性质的一组事物。
基本属性——变量
基本功能—–方法
变量–是用来在类中描述事物的基本属性
方法–是用来在类中描述事物的基本功能
4.4.Java类中变量的分类及其基本特征?
变量—保存数据
1.数据类型【不一定就是之前的基本数据类型,也有可能是自定义的复合数据类型】
2.变量名称【合法标识符–全字母小写】
3.初始值
4.作用域
按照在类中编写变量的位置划分:
1.成员变量【全局变量】—类中方法外
(1).可以使用访问限制修饰符,也可以不使用。
(2).可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
(3).可以在本类中的任意一个方法中被使用
2.局部变量———————–方法里/方法参数
(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();
}
}
输出的结果为:
例如:
class Xue{
//方法1--testM1
public void testM1(){
//public char sex;//不能使用访问限制修饰符。
//char sex;//必须设置初始值
char sex='男';//局部变量
//只能在本方法中使用
System.out.println("sex=="+sex);
}
//方法2-textM2
public void textM2(){
//只能在本方法中使用,超出本方法就不能使用
// System.out.println("sex=="+sex);
}
}
public class XueXi{
public static void main(String args[]){
Xue stu =new Xue();
stu.testM1();
}
}
运行结果:
4.5.什么是成员变量的隐藏?
在同一个类中成员变量与某一个方法中的局部变量的名称相同,这是我们在方法中使用这个成员变量的时候,得到的结果是局部变量的值,此时就是方法中的局部变量将类中成员变量的值隐藏了,这就是成员变量的隐藏。
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.6.静态成员变量与实例变量的区别?
静态成员变量与实例变量—-都是成员变量【全局变量】
成员变量【全局变量】—类中方法外
(1).可以使用访问限制修饰符,也可以不使用。
(2).可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
(3).可以在本类中的任意一个方法中被使用
成员变量【全局变量】可以分为2种
按照成员变量【全局变量】是否使用static关键字
静态成员变量【类变量】—使用static关键字修饰的成员变量【全局变量】
实例变量—没有使用static关键字修饰的成员变量【全局变量】
static关键字—静态的—》提前分配存储数据的内存空间
没有使用static关键字修饰的元素,是在程序运行时分配存储数据的内存空间。
使用static关键字修饰的元素,是在程序运行前分配存储数据的内存空间。
例如:
public class Xx{
public int Xxid=1001;
public static String classname="学习班";//静态成员变量【类变量】
static String classcode="20202020";//静态成员变量【类变量】
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156298.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...