您现在的位置是:首页 > Java 当前栏目 Java基础--类 JAVA 基础 对象 变量 代码 2023-03-02 10:57:41 时间 类 package test.java15; /** * 类描述客观世界里某"一类"对象的事物特性(属性和行为)(某一个类事物的集合和抽象),而对象则是类的具体存在。 * 类也模板 * 类-一般来说:构造函数,属性,方法(行为)和代码块。 */ /** * 成员包括:属性和方法 * 类的结构: * 访问修饰符 类名{ * * //构造函数 * 访问修饰符 类名(){}; * 访问修饰符 类名(参数列表){}; * * //属性定义 * 【访问修饰符】 【修饰词(static final)】 数据类型 变量名 = 值; * 【访问修饰符】 【修饰词(static final)】 数据类型 变量名 ; * * //方法 * 【访问修饰符】 【修饰词(static final)】 返回值 方法名{ * //方法体 * } * * } * */ public class Student { /** * 属性和方法 * 访问修饰符[private publie protected 缺省的] 修饰词(static ,final ,transient,volatile) 数据类型 = 字面值; * 在一个类中,属性和方法又分为两种情况: * 静态成员和非静态成员 * 静态成员是属于类本身的,不属于对象=--共享属性和方法 * * 静态成员在编译的时候就已经确定内存空间的大小,和当前类本身,存放入静态区中。---栈区 * 非静态成员,在new在申请空间地址的时候 创建的=---堆区 * * 总结: * 1: 非静态方法即可调用静态成员,也可以调用非静态元素 * 2:静态方法中只能调用静态成员 * 3:静态成员,一定要通过类去调用 * 4:静态成员属于类,他不能用this关键字 */ //属性--全局变量 /** * 全局变量--定义在方法以外,类以内的变量 * 全局变量可以不用赋值 * byte short int long 默认0 * float double 默认 0.0 * boolean 默认 false * char \u0000 空格 * 如果是封装数据类型和类,默认 null * 不赋值,就使用它们的默认值 */ private String name; private static int age; //静态属性 private Double sal;//非静态属性 //构造函数 public Student(String nameString){ System.out.println("您使用的类名字==="+nameString); } //非静态方法 public void buyBook(Double money) { /** * 局部变量--定义在方法或者代码块以内的变量 * 1:如果使用了一定要赋值 * 2:局部变量会随着方法执行完毕,生命周期结束,以作用域{}为周期,{}以外就消亡 * 3:在开发过程中,尽量避免全局变量与局部变量重名 * */ Double sal = 12000D; //局部变量 System.out.println(this.name+"工资"+this.sal+",买了一本书!"+"花了"+money); System.out.println(name+"工资"+sal+",买了一本书!"+"花了"+money); } //静态方法 public static void staticDemo() { System.out.println(Student.age); // System.out.println(name); //静态方法调用非静态属性,会编译错误,并且不能使用this关键字 } public static void main(String[] args) { //对象---肯定类有关系 //对象是通过类的构造函数(析构函数)去堆里去申请出来一块内存空间地址,申请过程---其实就是非静态成员拷贝的过程. Student student= new Student("学生类"); //只有对象才能给属性赋值,和调用方法 student.name = "fyl"; Student.age = 11; //建议不适用对象的方式赋值,直接使用类的方式 // student.age = 12; //对象的方式也可以 student.sal = 10000D; //下面语句就是通知cpu执行方法体的过程,形成独立的内存空间,里面数据类型是随着方法执行完毕,而结束 student.buyBook(200.6D); Student.staticDemo(); } } 运行结果 您使用的类名字===学生类 fyl工资10000.0,买了一本书!花了200.6 fyl工资12000.0,买了一本书!花了200.6 11 了解的知识点--代码块 package test.java03; public class Test { private static String name; private int age; //构造函数 public Test(int age) { this.age = age; System.out.println("3---我是构造函数"); } /** * 代码块--初始化成员变量的--编译阶段已经写入java堆 * 执行顺序: * 静态代码块>>>普通代码块>>>构造函数 * 包括静态代码块和普通代码块 */ //普通代码块--即可初始化非静态成员变量,也可初始化静态成员变量 { age = 30; name = "yy"; System.out.println("2---我是普通代码块"); } //静态代码块--只能初始化静态成员变量 static { name = "ff"; //不能定义age System.out.println("1---我是静态代码块"); } public static void main(String[] args) { Test test = new Test(10); System.out.println(Test.name+"======="+test.age); } } 输出结果 1---我是静态代码块 2---我是普通代码块 3---我是构造函数 yy=======10 本文地址: Java基础--类 相关文章 CSS预处理器之SCSS SpringCloud项目父工程搭建 ChatGPT杀疯了,这人工智能也太离谱了吧 nginx学习笔记 Nacos 的基本使用 使用Redux制作一个TodoList React跨域配置 Vue 获取渲染后的 DOM 工具的使用 爬取数据-urllib库 DRF学习笔记(一) 操作服务器的神奇工具Tmux 爬虫介绍 Deepin20 LNMP环境搭建(又一次瞎折腾的经历) urllib库的高级用法 数据提取-Beautiful Soup Requests库的用法 Deepin系统navicat15安装 URLError与Cookie 数据提取-正则表达式