当前位置: 首页 > news >正文

网站建设的不足嘉兴seo外包公司

网站建设的不足,嘉兴seo外包公司,wordpress调用自定义文章类型文章,做电影网站需要注意什么东西类是对象的抽象,是一组具有相同特性(属性,事物的状态信息)和行为(事物能做什么)的事物的集合,可以看做一类事物的模板。 对象是类的实例化,是具体的事物。 比如:人类和…

类是对象的抽象,是一组具有相同特性(属性,事物的状态信息)和行为(事物能做什么)的事物的集合,可以看做一类事物的模板。

对象是类的实例化,是具体的事物。

比如:人类和具体的人、厨师类和具体的厨师。

类的定义

/*** 类定义*/
权限修饰符 其他修饰符 class 类名 {成员变量;初始化代码块;构造方法;成员方法;
}

权限修饰符 :publicprotected(内部类时)、默认缺省、private(内部类时)。

其他修饰符:final(最终类,不可继承)、abstract(抽象类)、static(内部类)。

成员变量

  • 类变量 / 静态变量

使用 static 关键字修饰,类本身具有的属性,不依赖具体的实例对象,有默认值(参考数组)。

类的内部可以直接访问,外部可以通过类名访问(<类名>.<类变量名>)。

类变量在类加载时进行初始化,只有一份数据,即类的所有实例对象共享类变量。


public class Test1 {public static void main(String[] args) {System.out.println(Human.POPULATION); // 默认值 0}
}class Human {public static int POPULATION;
}
  • 实例变量

实例对象具有的属性,依赖具体的实例,有默认值(参考数组)。

在类的内部可以直接访问,和局部变量存在命名冲突时,适用就近原则,此时可以通过 this.实例变量名 访问,外部可以通过实例对象访问(<实例名>.<实例变量名>)。

实例变量在创建实例对象时进行初始化,每个对象都有自己的实例数据。

this:指代当前实例对象,可以通过 this 访问属性、成员方法、构造方法,还能作为参数传递给其他方法。

public class Test1 {public static void main(String[] args) {System.out.println(Human.POPULATION); // 默认值 0Human human = new Human();System.out.println(human.POPULATION); // 实际会转为通过类 Human 访问System.out.println(human.age); // 默认值 0}
}class Human {public static int POPULATION;public int age;
}
  • 成员变量和局部变量

成员变量定义在类上,局部变量定义在方法或代码块中。

默认值:成员变量有默认值,局部变量没有默认值。

作用域:成员变量的作用域是类,局部变量的作用域是定义的方法或代码块内部。

初始化代码块

  • 静态初始化代码块

用于静态变量的初始化,类加载时执行。

public static int POPULATION;static {POPULATION = 100;
}
  • 实例初始化代码块

创建实例对象时执行的代码块,主要用于实例变量的初始化,在构造方法之前执行。

public int age;{age = 20;
}

成员方法

  • 类方法 / 静态方法

使用 static 关键字修饰,类本身具有的行为,不依赖具体的实例,可以通过类名调用((<类名>.<类方法名>)),不能访问实例成员,只能访问静态成员。

public class Human {public static int POPULATION;public int age;public static void test1(){System.out.println(POPULATION); // 不能直接访问实例变量 age}
}
  • 实例方法

实例对象具有的行为,依赖具体的实例,只能通过实例对象调用(<实例名>.<实例方法名>),可以访问静态成员和实例成员,对静态成员的访问实际会转为通过类访问。

实例方法中有一个隐含的参数,就是 this,指向当前调用方法的对象实例。

public class Human {public static int POPULATION;public int age;public static void test1(){System.out.println(POPULATION); // 不能直接访问实例变量 age}public void test2(){System.out.println(POPULATION);}
}

构造方法

修饰符 类名作构造方法名(){// 无参构造方法
}修饰符 类名作构造方法名(参数列表){this.属性名 = 参数;
}

构造方法用于创建对象时初始化实例对象属性,调用构造方法不代表会生成对象。

构造方法名与类名相同,没有返回值类型声明,可重载。

构造方法中可以使用 this(...) 调用其他的构造方法,但必须在第一行调用,这是为了避免误操作,先调别的,然后根据情况自己再做调整。

  • 无参构造方法

默认构造方法,如果类没有显式声明构造方法,编译时会自动生成一个无参的构造方法,如果有显式声明,则不会自动生成无参构造方法。

  • 有参构造方法
// 无参构造方法
public Human(){this(null,0); // 可以通过 this 调用其他构造方法
}// 有参构造方法
public Human(String name,int age){this.name = name; // 此处 this 指代当前对象this.age = age;
}

⭐对象创建

通过关键字 new 调用类的构造方法创建对象。

public static void main(String[] args){Human human = new Human("王炸"25);
}

类加载过程

image.png

类的加载是指 JVM 将类的相关信息加载到方法区内存,为这个类分配一块空间,存储类的定义、成员变量和方法信息,并对静态变量赋初始值。

在 Java 中,类是动态加载的,当第一次通过 new 创建一个类的对象时,或者第一次直接通过类名访问类变量或类方法时,才会加载该类,加载一个类时会查看其父类是否已加载,如果没有,则还会加载其父类。

类加载进内存后,一般不会释放,直到程序结束,所以静态变量在内存中只有一份。

1)分配内存(方法区内存)保存类的信息(成员变量、成员方法、初始化代码、父类信息引用);

2)给类变量赋默认值;

3)加载父类,设置父子关系;

4)执行类初始化代码,先初始化父类部分。

对象创建过程

当通过 new 创建一个对象的时候,对象产生,在堆内存中,会存储这个对象的实例值,每做一次 new 操作,就会产生一个对象。

每个对象除了保存实例变量的值外,还保存着对应类型即类的地址,这样,通过对象就能知道它的类,访问到类的信息。

1)分配内存保存对象信息(堆内存);

2)对所有实例变量赋默认值;

3)执行实例初始化代码,先初始化父类部分。

对象内存分析

image.png

human 在内存中大概如图所示,new 出来的对象实际在堆内存中,栈内存中的变量 human 存储的是对象在堆内存中的 地址。

当没有变量引用 0x1234 指向的对象时,该对象将等待垃圾回收机制处理,具体释放时间由 JVM 决定。

参考:《Java 编程的逻辑》 马俊昌

http://www.dinnco.com/news/84004.html

相关文章:

  • 有个做名片什么的网站搜狗指数官网
  • 大气绿色网站模板广州发布紧急通知
  • seo精灵宜昌seo
  • 做网站时如何确定网站主题中国培训网官网
  • 建筑模板的种类班级优化大师怎么加入班级
  • 模板网站是什么意思哈尔滨seo网络推广
  • 重庆h5网站建设模板seo博客推广
  • 辽宁建设工程造价信息网网址seo关键词
  • 做网站需要会什么 知乎店铺推广渠道有哪些方式
  • 西安微信网站开发如何增加网站权重
  • 微网站建设开发工具最好的营销策划公司
  • 一流的网站建设公司跨境电商平台注册开店流程
  • 上海松江做网站建设怎么创建自己的游戏网站
  • 襄阳市做网站的公司北京互联网公司有哪些
  • ui培训师网站优化关键词排名
  • 东莞设计制作网站制作产品故事软文案例
  • 艺术品电商网站开发软文文案范文
  • 环球资源网入驻费用seo零基础入门到精通200讲
  • 0453牡丹江信息网免费发布信息石景山区百科seo
  • 诸城网站建设定制河南自助建站seo公司
  • 营销型网站建设的优缺点nba最新交易汇总实时更新
  • 网站架设教程新产品怎样推广
  • 做配电箱的专门网站找网络公司做推广费用
  • 免费做网站排名深圳百度推广代理
  • 网购网站建设视频教程网络培训平台有哪些
  • web网站开发需求文档模板网络营销是干什么的
  • wordpress主题zanblog长春seo培训
  • 字体版权登记网站百度流量推广项目
  • 网站知名度成人计算机速成培训班
  • 教做年糕博客网站百度免费收录提交入口