类的成员可以包含以下:字段、方法、代码块、内部类和接口等。
// 创建类
class Person{
public int age; //成员属性 实例变量
public static int count; //静态成员变量 注释:不用new直接(Person
.
count)
public void eat() { //成员方法
System.out.println("吃饭!");
}
public static void staticFun(){ //类方法 注释:不用new直接(Person.staticFun)
System.out.println("123");
}
}
public final int SIZE = 10 ; // 被 final 修饰的叫常量,也属于对象。 被 final 修饰,后续不可更改public static final int COUNT = 99 ; // 静态的常量,属于类本身,只有一份 被 final 修饰,后续不可更改
![](https://i-blog.csdnimg.cn/blog_migrate/8223149593377a9f830f159530b43d83.png)
总结:所有被static所修饰的方法或者属性,全部不依赖于对象。
基本语法
// 创建类class < class_name > {field ; // 成员属性method ; // 成员方法}// 实例化对象< class_name > < 对象名 > = new < class_name > (); => Person person = new Person ()
实例:
class Person {public int age ; // 成员属性 实例变量public String name ;public String sex ; 输出结果为:注意事项new 关键字用于创建一个对象的实例 .使用 . 来访问对象中的属性和方法 .同一个类可以创建对个实例 .3. 类的成员类的成员可以包含以下:字段、方法、代码块、内部类和接口等。此处我们重点介绍前三个 .3.1 字段 / 属性 / 成员变量在类中 , 但是方法外部定义的变量 . 这样的变量我们称为 " 字段 " 或 " 属性 " 或 " 成员变量 "( 三种称呼都可以 , 一般不会严 格区分).用于描述一个类中包含哪些数据 .public void eat () { // 成员方法System . out . println ( " 吃饭 !" );}public void sleep () {System . out . println ( " 睡觉 !" );}}public class Main {public static void main ( String [] args ) {Person person = new Person (); // 通过 new 实例化对象person . eat (); // 成员方法调用需要通过对象的引用调用person . sleep ();// 产生对象 实例化对象Person person2 = new Person ();Person person3 = new Person ();}}
public static int count;//类变量也叫静态变量,编译时已经产生,属于类本身,且只有一份。存放在方法区
//总结:所有被static所修饰的方法或者属性,全部不依赖于对象。
4.1 private 实现封装private/ public 这两个关键字表示 " 访问权限控制 " .被 public 修饰的成员变量或者成员方法 , 可以直接被类的调用者使用 .被 private 修饰的成员变量或者成员方法 , 不能被类的调用者使用 .
匿名对象
- 匿名只是表示没有名字的对象.
- 没有引用的对象称为匿名对象.
- 匿名对象只能在创建对象时使用.
- 如果一个对象只是用一次, 后面不需要用了, 可以考虑使用匿名对象.
new Person("caocao",19).show();//通过匿名对象调用方法
构造方法
- 基本语法
构造方法是一种特殊方法
,
使用关键字
new
实例化新对象时会被自动调用
,
用于完成初始化操作
.
new 执行过程
为对象分配内存空间
调用对象的构造方法
- 语法规则
1.
方法名称必须与类名称相同
2.
构造方法没有返回值类型声明
3.
每一个类中一定至少存在一个构造方法(没有明确定义,则系统自动生成一个无参构造)
- 注意事项
如果类中没有提供任何的构造函数,那么编译器会默认生成一个不带有参数的构造函数
若类中定义了构造方法,则默认的无参构造将不再生成
.
构造方法支持重载
.
规则和普通方法的重载一致
.
//实例代码块{this.name = "bit";this.age = 12;this.sex = "man";System.out.println("I am instance init()!");}//静态代码块 只执行一次static {count = 10;// 只能访问静态数据成员System.out.println("I am static init()!");}