类和对象

一.使用class来定义类

class 类的名称{

// 属性 成员属性,对象属性

// 方法 成员方法,对象方法

}

例:定义Person类

class Persong{

// 属性

String name; //姓名

int age; // 年龄

String sex; // 性别

public void eat(){} // 吃饭行为 - 成员方法,行为和具体的对象相关

public void sleep(){} // 睡觉行为- 成员方法

一个源文件只能存在一个主类 public class

二.构造方法

Dog dog = new Dog();

此时定义了一个Dog类,当执行new时就会在堆上开辟一个空间。

class Dog{

String name;

String color;

 

三.调用构造方法为每个成员属性赋初始值

class Dog{

String name = "15";

String color = "棕色";

成员变量的所有赋值操作都是在构造方法中进行的。 

四.关键词this

1.使用this修饰成员变量

如果没有this修饰,无法确定这一个String类型到底是给name还是color。

所以修改为

Dog(String name){

       this.name = name;

this后的name是属性中的name,后面的name是形参name 是用户定义的name。

2.this修饰方法

Ⅰ.表示直接调用类中的方法。

Ⅱ.调用构造方法.

如上图代码,当其他方法是一个方法的子集时,则可以直接在母集中调用,这样避免了重复调用。

但是有两个注意事项:

A:this构造方法调用必须写在构造方法的首行; 

这样书写极为则为错误,需要将this();放在首行。

B:this的构造方法不能成环,因为成环则会无限调用。

 

改代码则成环,第三个方法调用第二个,第二个调用第一个,第一个又调用第二个,所以无限循环。

五.static关键字

1.static修饰属性,称之为静态的类属性。

static修饰属性时,可以通过类直接调用,并且当static修饰一个属性时,这个属性需要为与具体对象无关的属性,比如年龄、名字、性别都需要具体对象密切相关,而国籍则不同,只要知道你是哪个国家的人,就知道了你的国籍。

  当j1 = null;

即便j1为null,但是当j1.+属性,还是可以调用属性,是因为此时可以视为使用静态类调用,引用值为null时,只有调用成员方法或者成员变量时才会出现NPE异常,静态变量或者方法不会报错。

2.static修饰的静态域和成员域之间的关系

可以在成员方法中调用静态属性或方法,但是反之则不行。 

图中代码是在成员方法中调用静态属性,没有报错。

 

反过来调用就报错了。

六.代码块

1.普通代码块

直接定义在方法内部,不加任何修饰{}。

2.构造块

直接定义在类中使用{}的代码块。

并且在执行代码时,构造块优先于其他构造方法

3.静态代码块

而且主类中的静态代码块会优先于主方法执行。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值