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

电话网站域名到期东莞企业网站定制设计

电话网站域名到期,东莞企业网站定制设计,住房和城乡建设查询平台,设计制作我们的小船类之间的关系 在类之间#xff0c;最常见的关系有#xff1a; 依赖#xff08;“uses-a”#xff09;;聚合#xff08;“has-a”#xff09;;继承#xff08;“is-a”#xff09;。 依赖#xff1a;一种使用关系#xff0c;即一个类的实现需要另一个类的协助#x…类之间的关系 在类之间最常见的关系有 依赖“uses-a”;聚合“has-a”;继承“is-a”。 依赖一种使用关系即一个类的实现需要另一个类的协助使用关系具有偶然性、临时性、非常弱被使用类的变化会影响到使用类。在 Java 中表现为局部变量、方法的参数或者对静态方法的调用。例如class Driver中方法drive1(Car car)、drive2()、drive3()分别通过形参、局部变量、静态方法调用体现对Car类的依赖。聚合关联关系的特例是强关联关系体现整体与部分的关系且部分可以离开整体而单独存在它们有各自的生命周期部分可属于多个整体对象也可为多个整体对象共享。在 Java 中一般使用成员变量形式实现一般用setter方法给成员变量赋值。例如class Driver中Car mycar若赋予 “车是司机财产一部分” 语义可表示聚合关系。继承泛化是一种继承关系表示一般与特殊的关系指定子类如何获得父类的所有特征和行为。通过关键字extends明确标识。例如class Dog extends Animal表示Dog类继承自Animal类Dog类拥有Animal类的属性和方法还可拥有自己特有的属性和方法。 对象与对象变量 想要使用对象首先必须先构造对象并且对其指定初始状态。然后对对象应用方法。 在java程序设计语言中要使用构造器constructor, 或称构造函数构造新实例。构造器是一种特殊的方法用来构造并初始化对象。 构造器的定义 构造器的名称必须与类名完全相同并且没有返回类型连 void 也不能有。 基本语法如下 [访问修饰符] 类名([参数列表]) {// 构造器的方法体 } 构造器的特点 名称与类名相同构造器的名称必须和所在类的名称一致这是 Java 语言的规定用于明确标识这是一个构造器。大小写也需要一致。没有返回类型构造器不能声明返回类型包括 void 也不可以。这是因为构造器的主要目的是创建并初始化对象而不是返回一个值。在创建对象时自动调用当使用 new 关键字创建一个对象时会自动调用相应类的构造器来完成对象的初始化工作。 对象Object 定义 对象是类的一个实例。类是对一类事物的抽象描述规定了这类事物所具有的属性和行为而对象则是类在现实世界中的具体个体它拥有类所定义的属性和行为的具体值。例如“汽车” 可以看作一个类而某一辆具体的红色宝马汽车就是 “汽车” 类的一个对象。 创建对象 在 Java 中使用 new 关键字来创建对象其一般步骤如下 声明类类型的变量指定要创建对象的类型。使用 new 关键字创建对象调用类的构造器来初始化对象。 class Car {String color;String brand;// 构造器public Car(String color, String brand) {this.color color;this.brand brand;}public void showInfo() {System.out.println(This is a color brand car.);} }public class Main {public static void main(String[] args) {// 创建 Car 对象Car myCar new Car(red, BMW);myCar.showInfo();} } 在上述代码中Car 是一个类myCar 是 Car 类的一个对象。通过 new Car(red, BMW) 调用 Car 类的构造器创建了一个具体的汽车对象并对其属性进行了初始化。 对象变量Object Variable 定义 对象变量是用来引用对象的变量它存储的是对象在内存中的引用地址而不是对象本身。可以把对象变量看作是指向对象的一个 “指针”通过这个变量可以访问和操作对象的属性和方法。 对象变量的声明和赋值 声明对象变量的语法与声明基本数据类型变量类似需要指定变量的类型和名称。赋值时将 new 关键字创建的对象的引用赋给对象变量。 示例代码如下 class Dog {String name;public Dog(String name) {this.name name;}public void bark() {System.out.println(name is barking!);} }public class Main {public static void main(String[] args) {// 声明对象变量Dog myDog;// 创建对象并将引用赋值给对象变量myDog new Dog(Buddy);myDog.bark();} } 在上述代码中Dog myDog; 声明了一个 Dog 类型的对象变量 myDogmyDog new Dog(Buddy); 将创建的 Dog 对象的引用赋给了 myDog 变量之后就可以通过 myDog 来调用 Dog 对象的方法。   对象和对象变量的区别 存储内容不同 对象对象是在堆内存中实际分配的一块内存区域包含了对象的属性值等具体数据。对象变量对象变量存储的是对象在堆内存中的引用地址它位于栈内存中。 生命周期不同 对象对象的生命周期从使用 new 关键字创建开始直到没有任何对象变量引用它并且被 Java 的垃圾回收机制回收为止。对象变量对象变量的生命周期取决于它的作用域。当对象变量超出其作用域时它就会被销毁但对象本身不一定被销毁只要还有其他对象变量引用它。 操作方式不同 对象对象本身不能直接进行操作需要通过对象变量来访问和操作对象的属性和方法。对象变量可以通过对象变量来调用对象的方法、访问对象的属性等。 需要注意的是对象变量并没有实际包含一个对象它只是引用一个对象。 在java中任何对象变量的值都是对存储在另一个地方的某个对象的引用。 注很多人误以为 Java 对象变量等同于 C 引用。实则不然C 无 null 引用且引用不可赋值。Java 对象变量类似 C 对象指针如 Java 的 Date birthday; 等同于 C 的 Date* birthday; 且二者用 new 初始化语法相近。变量复制后二者指向同一对象指针Java 的 null 引用对应 C 的 NULL 指针。 this关键字 在 Java 中this关键字是一个引用指向当前对象的实例主要有以下几种用法 引用当前对象的成员变量 当类中方法的局部变量和成员变量同名时根据就近原则方法会优先使用局部变量。若想访问被覆盖的成员变量则需使用this前缀。例如 public class Teacher { private String name; private double salary; private int age; public Teacher(String name,double salary,int age) { this.name name; this.salary salary; this.age age; } } 上述代码中构造方法的参数与成员变量同名通过this.name、this.salary、this.age明确操作的是成员变量。  调用当前对象的其他方法 this关键字可在方法内部调用当前对象的其他方法能避免与方法参数或局部变量同名的方法名冲突确保调用的是当前对象的方法。示例如下 public class Dog { public void jump() { System.out.println(正在执行jump方法); } public void run() { this.jump(); System.out.println(正在执行run方法); } } 访问本类的构造方法 this()用于访问本类的构造方法且必须是构造方法中的第一条语句。例如 public class Student { String name; public Student() { this(张三); } public Student(String name) { this.name name; } public void print() { System.out.println(姓名 name); } } 无参构造方法Student()中this(张三)调用了有参构造方法Student(String name)。 实现链式调用 在方法返回this关键字可实现链式调用即能在同一个对象上连续调用多个方法。示例 public class Calculator { private int result; public Calculator add(int number) { this.result number; return this; } public Calculator subtract(int number) { this.result - number; return this; } public int getResult() { return this.result; } } // 链式调用示例 Calculator calculator new Calculator(); calculator.add(5).subtract(3); int result calculator.getResult(); 上述代码中add和subtract方法都返回this实现了链式调用。   此外使用this关键字还有一些注意事项 不能在静态方法中使用因为静态方法属于类本身而非任何对象。this关键字的值不能被赋值给另一个变量因其只是一个引用不是对象。应避免滥用以免影响代码的可读性和可维护性。this可以区分成员变量和局部变量。 构造方法 构造方法注意事项 1. 构造方法的定义- 如果没有定义构造方法系统将给出一个默认的无参数构造方法。 - 如果定义了构造方法系统将不再提供默认的构造方法。 2. 构造方法的重载 - 带参构造方法和无参数构造方法两者方法名相同但是参数不同这叫做构造方法的重载。 3. 推荐的使用方式- 无论是否使用都手动书写无参数构造方法和带全部参数的构造方法。 无参数构造方法 如果类中没有定义任何构造方法Java 编译器会自动提供一个默认的无参数构造方法。当然也可以手动定义无参数构造方法。示例如下 class Book {String title;int pageCount;// 无参数构造方法public Book() {title 默认书名;pageCount 0;}public void displayInfo() {System.out.println(书名: title);System.out.println(页数: pageCount);} }public class Main {public static void main(String[] args) {// 创建Book对象时调用无参数构造方法Book myBook new Book();myBook.displayInfo();} } 在上述代码中Book类定义了一个无参数构造方法在创建Book对象时该构造方法会被调用将title初始化为 “默认书名”pageCount初始化为 0。 带全部参数构造方法 带参数的构造方法用于在创建对象时为对象的成员变量赋初始值。示例如下 class Person {String name;int age;String address;// 带全部参数构造方法public Person(String name, int age, String address) {this.name name;this.age age;this.address address;}public void showInfo() {System.out.println(姓名: name);System.out.println(年龄: age);System.out.println(地址: address);} }public class Main {public static void main(String[] args) {// 创建Person对象时调用带全部参数构造方法Person person new Person(张三, 25, 北京市);person.showInfo();} } 这里Person类的构造方法接受name、age、address三个参数在创建Person对象时通过传递相应的参数来初始化对象的成员变量。 构造方法重载 一个类中可以有多个构造方法只要它们的参数列表不同这就是构造方法重载。示例如下 class Circle {double radius;String color;// 无参数构造方法public Circle() {radius 1.0;color 红色;}// 带一个参数构造方法public Circle(double radius) {this.radius radius;color 蓝色;}// 带两个参数构造方法public Circle(double radius, String color) {this.radius radius;this.color color;}public void printInfo() {System.out.println(半径: radius);System.out.println(颜色: color);} }public class Main {public static void main(String[] args) {// 使用不同的构造方法创建对象Circle circle1 new Circle();Circle circle2 new Circle(2.5);Circle circle3 new Circle(3.0, 绿色);circle1.printInfo();circle2.printInfo();circle3.printInfo();} } 在Circle类中定义了三个构造方法分别是无参数、带一个参数、带两个参数的构造方法。通过构造方法重载可以根据不同的需求以不同的方式来创建Circle对象。 标准的javabean类 JavaBean 是一种符合特定编程规范的 Java 类在 Java 开发中用于封装数据和提供访问数据的方法方便在不同组件间传递数据等。 在java中 类是公共的public保证其他类能够访问该 JavaBean 类。有一个公共的无参构造方法便于在反射等机制以及框架如 Spring创建对象时使用比如在框架初始化对象实例时会首先调用这个无参构造方法。属性私有private对数据进行封装保证数据的安全性防止外部直接访问和修改。通过公共的 getter 和 setter 方法访问属性提供了受控的方式来访问和修改私有属性同时也可以在这些方法中添加业务逻辑比如数据验证等。 组成部分 私有属性用于存储数据例如 private String name; private int age; 上述代码中name和age就是JavaBean类的私有属性。  2. 无参构造方法 public MyBean() { } 无参构造方法在创建对象时若没有传入参数会默认初始化对象的属性。 3. getter 方法用于获取私有属性的值命名规范是get加上属性名且首字母大写对于布尔类型属性若属性名是is开头则 getter 方法为is属性名例如  public String getName() {return name; } public int getAge() {return age; } 4.setter 方法用于设置私有属性的值命名规范是set加上属性名且首字母大写例如 public void setName(String name) {this.name name; } public void setAge(int age) {this.age age; } 一个完整的JavaBean示例如下 public class Person {// 私有属性private String name;private int age;// 无参构造方法public Person() {}// getter方法public String getName() {return name;}public int getAge() {return age;}// setter方法public void setName(String name) {this.name name;}public void setAge(int age) {this.age age;} } 在使用时可以 public class Main {public static void main(String[] args) {Person person new Person();person.setName(Alice);person.setAge(25);System.out.println(姓名 person.getName() 年龄 person.getAge());} } 注意事项 类名需要见名知意。成员变量使用private修饰。提供至少两个构造方法 无参构造方法。 带全部参数的构造方法。成员方法 提供每一个成员变量对应的setXxx()/getXxx()。 如果还有其他行为也需要写上。 Java 内存分配区域 Java 内存主要分为以下几个区域 栈Stack方法运行时所进入的内存局部变量也是在这里存储。每个方法在执行时会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。方法执行结束栈帧就会被销毁。例如在一个方法中定义的int num 10;num这个局部变量就存储在栈内存中。堆Heapnew出来的对象和数组等都在堆内存中开辟空间并产生地址。堆是 Java 内存管理的核心区域是被所有线程共享的一块内存区域其生命周期从 JVM 启动开始直到 JVM 停止。对象的实例化、内存分配等操作都在堆中进行比如new Student();创建的学生对象就存放在堆内存中。方法区Method Area字节码文件加载时进入的内存存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。例如HelloWorld.class、Test.class等字节码文件在加载时就会进入方法区。另外像static修饰的静态变量也存储在方法区。本地方法栈Native Method Stack与虚拟机使用的本地方法相关为 Native 方法服务。比如 Java 调用 C 或 C 的本地代码时相关的内存操作就在本地方法栈进行。寄存器用于存储指令、操作数等是 CPU 内部的高速存储区域与 Java 内存模型的关系相对间接主要供 CPU 快速访问数据。 一个对象的内存分配过程以Student s new Student();为例 加载 class 文件JVM 首先会查找并加载Student类的字节码文件.class文件到方法区解析类的元数据信息如类的字段、方法等。申明局部变量在栈内存中声明一个名为s的局部变量此时它还没有指向任何有效的对象。在堆内存中开辟一个空间使用new关键字在堆内存中为Student对象分配一块内存空间这块空间用于存储对象的实例变量等数据。默认初始化堆内存中为对象分配的空间会进行默认初始化比如对于基本数据类型的成员变量int类型默认初始化为0boolean类型默认初始化为false等对于引用类型的成员变量默认初始化为null。显示初始化按照类中成员变量定义时的赋值语句进行初始化例如private int age 18;如果有这样的定义此时age就会被初始化为18。构造方法初始化调用Student类的构造方法对对象进行进一步的初始化操作构造方法中可以对成员变量进行赋值等操作。将堆内存中的地址值赋值给左边的局部变量把在堆内存中创建的Student对象的地址赋值给栈内存中的局部变量s此时s就指向了堆内存中的Student对象后续就可以通过s来操作该对象。 多个对象引用指向同一个对象的内存情况 假设有以下代码 Student s1 new Student(); Student s2 s1; 首先按照上述单个对象创建过程new Student();在堆内存中创建一个Student对象同时在栈内存中创建局部变量s1并指向堆中的对象。执行Student s2 s1;时在栈内存中又创建了一个局部变量s2并将s1中存储的对象地址赋值给s2这样s1和s2都指向了堆内存中的同一个Student对象。此时如果通过s1修改对象的属性s2访问该对象时也会看到属性的变化因为它们指向的是同一个对象。 不同对象的内存情况 当有多个不同对象创建时比如 Student s1 new Student(); Student s3 new Student(); 每次执行new Student();都会在  堆内存中开辟独立的空间创建新的Student对象。栈内存中分别有s1和s3两个局部变量它们各自指向堆内存中不同的Student对象这两个对象的属性相互独立修改s1指向对象的属性不会影响s3指向的对象。
http://www.tj-hxxt.cn/news/225161.html

相关文章:

  • 响应式网站开发要注意哪些扬中零壹网站建设
  • 摄影网站开题报告天眼在线查企业查询
  • 佛山企业网站设计公司unix做网站常用的数据库
  • 高端网站建设域名注册免费模式营销案例
  • 怎么查看网站快照自己搭建公司网站
  • wordpress建图片网站长春大学
  • 做网站怎么拿框架的原代码网站建设出找不到网页
  • 企业网站的需求分析设计网页页面的软件
  • 网站开发重要性郑州小程序开发哪家好
  • 更合网站建设制作优化seo公司哪家好
  • 怎么帮别人做网站wordpress 媒体库 分离
  • 做网站去什么公司网站建设的技术支持论文
  • 大连建设网节能办公室网站浙江网站建设排名
  • 不用iis建立网站网站制作费用属于广告费吗
  • 自建站推广企业年金如何提取
  • 大同格泰网站建设公司专业做网站
  • 移动端购物网站建设网站策划与维护
  • 旅游平台网站合作建设方案上海市建筑业官网
  • 获得网站php管理员密码网站做二级目录跟二级域名的区别
  • 单页网站后台订单系统长沙网络推广平台
  • wordpress邮箱插件下载郑州seo优化外包
  • 郑州企业微网站建设wordpress后台登陆不进去
  • 网站开发 公司 深圳济宁建设网站
  • 四川省广安建设局网站外贸网站做哪些语言
  • 万远翔网站建设嘉兴网站建设的地方
  • 哪个网站做app做房地产开网
  • 网站优化排名公司哪家好wordpress一键优化
  • 淘宝客网站建设要注意什么sns社交网站 建设
  • 宝塔建站详细教程桂林北站到两江机场有多远
  • 深圳品牌网站建设公司vps服务器购买