【Java SE】类和对象(3)
目录
类与对象基础:
6.1再谈static
6.2 static 修饰成员变量
6.3 static 修饰成员方法
7.1代码块
①普通代码块
②构造代码块
编辑
③静态代码块
④同步代码块
【Java SE】类和对象(1)-CSDN博客文章浏览阅读765次,点赞39次,收藏9次。本文摘要: Java类与对象基础概念总结:1.类是对实体的描述模板,采用大驼峰命名,包含属性和方法;2.通过new关键字实例化对象,可创建多个实例,成员变量有默认值;3.this关键字用于引用当前对象,可访问成员变量/方法,还能在构造方法间调用;4.构造方法需与类同名,无返回值,支持重载,编译器会生成默认无参构造;5.对象初始化分为默认初始化(赋予默认值)和就地初始化(编译时会加入构造方法)。文章还介绍了IDEA快速生成构造方法的技巧。
https://blog.csdn.net/Boop_wu/article/details/148620285
【Java SE】类和对象(2)----封装-CSDN博客文章浏览阅读283次,点赞7次,收藏8次。摘要:封装是面向对象编程的核心特性之一,通过将数据和方法捆绑在类中并控制访问权限来提升代码安全性。Java提供四种访问修饰符:private(仅类内)、default(同包)、protected(同包及子类)、public(全局)。最佳实践包括:成员变量设为private并提供getter/setter,遵循最小权限原则。包机制支持代码组织,使用反转域名命名(如com.example),通过import导入其他包内容。封装关键步骤包括访问控制、提供公共方法和构造方法验证。https://blog.csdn.net/Boop_wu/article/details/148651888
类与对象基础:
- 类作为实体模板,采用大驼峰命名,包含属性和方法
- 通过new实例化对象,this引用当前实例
- 构造方法支持重载,编译器提供默认无参构造
- 对象初始化包括默认初始化和就地初始化两种方式
封装特性:
- 使用private/protected/public等访问修饰符控制可见性
- 通过getter/setter方法访问私有成员
- 包机制采用反转域名命名规范管理代码组织
静态成员:
- static修饰的成员属于类级别,所有对象共享
- 静态方法不能访问非静态成员,不支持多态
- 静态代码块在类加载时执行,用于初始化静态变量
代码块类型:
- 实例代码块初始化对象成员
- 静态代码块初始化类成员(仅执行一次)
- 执行顺序:静态代码块→实例代码块→构造方法
6.1再谈static
在java 中被static 修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对象,是所有对象共享的。
public class Student{public String name;public int age;public double score;//public static String classRoom = "一班";private static String classRoom = "一班";public Student(String name, int age, double score) {this.name = name;this.age = age;this.score = score;}public void doclass(){System.out.println("上课");}public static String getClassRoom(){//age+=1;//doclass;return classRoom;}public static void main(String[] args) {System.out.println(Student.classRoom);Student s1 = new Student("张三",15,78.5);System.out.println(s1.classRoom);System.out.println(Student.getClassRoom());}}
6.2 static 修饰成员变量
static 修饰成员变量,称之为静态成员变量。
特性:
①不属于某个具体的对象,是所有对象所共享的,不存储在某个对象的空间中。
②既可以通过对象访问,也可以通过类名访问(更推荐)。
③类变量存储在方法区当中。
④随类的加载而创建,随类的卸载而销毁。
6.3 static 修饰成员方法
特性:
①不属于具体的对象,是类方法。
②可以通过对象调用,也可以通过类名 . 静态方法名 (....) 的方式调用,(大体同上)
③不能再静态方法中访问任何非静态成员变量,如下所示
④静态方法中不能调用任何非静态方法,因为非静态方法有this参数,再静态方法中无法传递this 引用
⑤静态方法无法重写,不能用来实现多态
7.1代码块
使用 { } 定义的一段代码称为代码块,根据代码块定义的位置以及关键字,又可以分为以下四种:
①普通代码块
定义在方法中的代码块
public static void main(String[] args) {{int x = 10;System.out.println("x1=" + x);}int x = 100;System.out.println("x2="+x);}
x处于两个不同的作用域
public class Student{private String name;private String gender;private int age;private static String classRoom;{this.name = "zhangsan ";this.gender = "男";this.age = 59;}static {classRoom = "一班";}public static void main(String[] args) {Student s1 = new Student();}}
②构造代码块
定义在类中的代码块(不加修饰符)。也叫实例实例代码块。一般用于初始化实例成员变量
③静态代码块
使用static 定义的代买块成为静态代码块。一般用于初始化静态成员变量。
注意:
- 不管实例化多少个对象,静态代码块只在类被加载的时候执行一次(静态成员变量是类的属性)。
- 如果出现多个静态代码块,则根据先后顺序执行(合并)
- 执行顺序:静态代码块→实例代码块→构造代码块;若是平级的,则根据定义的顺序执行。
- 实例代码块只有在创建对象时才会被执行。
④同步代码块
完