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

济南高端网站设计建设想做一个网站怎么做

济南高端网站设计建设,想做一个网站怎么做,公司网页编辑,wordpress广告平台7. 类和对象 7.1 面向对象的初步认知7.1.1 什么是面向对象7.1.2 面向对象与面向过程 7.2 类定义和使用7.2.1 简单认识类7.2.2 类的定义格式7.2.3 定义一个狗类7.2.4 定义一个学生类 7.3 类的实例化7.3.1 什么是实列化7.3.2 引用只能指向对象#xff0c;且不能同时指向多个对象… 7. 类和对象 7.1 面向对象的初步认知7.1.1 什么是面向对象7.1.2 面向对象与面向过程 7.2 类定义和使用7.2.1 简单认识类7.2.2 类的定义格式7.2.3 定义一个狗类7.2.4 定义一个学生类 7.3 类的实例化7.3.1 什么是实列化7.3.2 引用只能指向对象且不能同时指向多个对象7.3.3 类和对象的说明 例题如何交换两个数据7.4this引用7.4.1 为什么要有this引用7.4.2 什么是this引用7.4.3 this引用特性 7.5 对象的构造及初始化7.5.1 如何初始化对象7.5.2 默认初始化7.5.3 就地初始化7.5.4 构造方法概念特性一旦这个类 提供了 任何一种构造方法 编译器 都将不会再为你提供 不带参数的构造方法。快捷键构造几个参数的构造方法构造方法中可以通过this调用其他构造方法来简化代码 7.1 面向对象的初步认知 7.1.1 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program简称OOP)在面向对象的世界里一切皆为对象。面向对象是解决问题的一种思想主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序更符合人们对事物的认知对于大型程序的设计、扩展以及维护都非常友好。 7.1.2 面向对象与面向过程 传统洗衣服过程 传统的方式注重的是洗衣服的过程少了一个环节可能都不行。 而且不同衣服洗的方式时间长度拧干方式都不同处理起来就比较麻烦。如果将来要洗鞋子那就是另一种放方式。 按照该种方式来写代码将来扩展或者维护起来会比较麻烦。现代洗衣服过程 以面向对象方式来进行处理就不关注洗衣服的过程具体洗衣机是怎么来洗衣服如何来甩干的用户不用去关心只需要将衣服放进洗衣机倒入洗衣粉启动开关即可通过对象之间的交互来完成的。 7.2 类定义和使用 面相对象程序设计关注的是对象比如洗衣机。 7.2.1 简单认识类 类是用来对一个实体(对象)来进行描述的主要描述该实体(对象)具有哪些属性(外观尺寸等)哪些功能(用来干啥) 7.2.2 类的定义格式 //WashMachine 类名 采用大驼峰命名 我们自己定义的类型 class WashMachine {//属性 字段 成员变量 这些成员变量是定义在方法外部 类的内部public String brand; // 品牌public String type; // 型号public String weight; // 重量public String length; // 长public String width; // 宽public String height; // 高public String color; // 颜色//成员方法public void washClothes() { //洗衣服System.out.println(洗衣服功能);}public void dryClothes() { //脱水System.out.println(脱水功能);}public void setTime() { //定时System.out.println(定时功能);} }7.2.3 定义一个狗类 class PetDog {public String name;//名字public String color;//颜色public int age;//年龄// 狗的属性public void barks() {System.out.println(name : 旺旺旺~~~);}// 狗的行为public void wag() {System.out.println(name : 摇尾巴~~~);} }7.2.4 定义一个学生类 class Student{public String name;public String gender;public short age;public double score;public void DoClass(){}public void DoHomework(){}public void Exam(){} }注意 一般一个文件当中只定义一个类main方法所在的类一般要使用public修饰(注意Eclipse默认会在public修饰的类中找main方法)public修饰的类必须要和文件名相同不要轻易去修改public修饰的类的名称如果要修改通过开发工具修改class名字即可修改。 7.3 类的实例化 7.3.1 什么是实列化 定义了一个类就相当于在计算机中定义了一种新的类型与intdouble类似只不过int和double是java语言自带的内置类型而类是用户自定义了一个新的类型比如上述的PetDog类和Student类。它们都是类(一种新定义的类型)有了这些自定义的类型之后就可以使用这些类来定义实例(或者称为对象)。 用类类型创建对象的过程称为类的实例化在Java中采用new关键字配合类名来实例化对象。 class Dog {public String name;//名字public String color;//颜色public int age;//年龄// 狗的属性public void barks() {System.out.println(name : 旺旺旺~~~);}// 狗的行为public void wag() {System.out.println(name : 摇尾巴~~~);} } public class ClassObject {public static void main(String[] args) {Dog dog1 new Dog();dog1.name 阿黄;dog1.age 2;dog1.color 黄色;System.out.println(年龄dog1.age);System.out.println(姓名dog1.name);System.out.println(颜色dog1.color);dog1.barks();dog1.wag();System.out.println();Dog dog2 new Dog();dog2.name 旺财;dog2.age 3;dog2.color 黑色;System.out.println(年龄dog2.age);System.out.println(姓名dog2.name);System.out.println(颜色dog2.color);dog2.barks();dog2.wag();//可以通过new 关键字 来实例化多个对象Dog dog3 new Dog();Dog dog4 new Dog();Dog dog5 new Dog();} }注意 new 关键字用于创建一个对象的实例.使用 . 来访问对象中的属性和方法.同一个类可以创建对个实例. 7.3.2 引用只能指向对象且不能同时指向多个对象 引用只能存储一个对象的地址 Dog dog2 null;代表 Dog2这个引用 不指向任何对象而不是指向null。 7.3.3 类和对象的说明 类只是一个模型一样的东西用来对一个实体进行描述限定了类有哪些成员.类是一种自定义的类型可以用来定义变量.一个类可以实例化出多个对象实例化出的对象 占用实际的物理空间存储类成员变量做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子类就像是设计图只设计出需要什么东西但是并没有实体的建筑存在同样类也只是一个设计实例化出的对象才能实际存储数据占用物理空间 例题如何交换两个数据 调用swap方法后 class Myvalue {public int val; }public class Test {public static void swap(Myvalue val1,Myvalue val2) {int tmp val1.val;val1.val val2.val;val2.val tmp;}public static void main(String[] args) {Myvalue myValue1 new Myvalue();myValue1.val 10;Myvalue myValue2 new Myvalue();myValue2.val 20;System.out.println(交换前myValue1.val);System.out.println(交换前myValue2.val);swap(myValue1,myValue2);System.out.println(交换后myValue1.val);System.out.println(交换后myValue2.val);} }7.4this引用 7.4.1 为什么要有this引用 public class Date {public int year;public int month;public int day;//局部变量优先使用public void setDate(int year,int month,int day) {year year;month month;day day;}public void printDate() {System.out.println(年year月month日day);}public static void main(String[] args) {Date date new Date();date.setDate(1945,9,1);date.printDate();} }当形参名不小心与成员变量名相同时局部变量会优先使用把年月日直接赋值为0。 7.4.2 什么是this引用 this引用指向当前对象成员方法运用时调用该成员方法的对象在成员方法中所有成员变量的操作都是通过该引用去访问。只不过所有的操作对用户是透明的即用户不需要来传递编译器自动完成。 public class Date {public int year;public int month;public int day;//局部变量优先使用谁调用当前这个方法谁就是thispublic void setDate(int year,int month,int day) {this.year year;this.month month;this.day day;}public void printDate() {System.out.println(年this.year月this.month日this.day);}public static void main(String[] args) {Date date new Date();date.setDate(1945,9,1);date.printDate();Date date2 new Date();date2.setDate(1949,10,1);date2.printDate();} }7.4.3 this引用特性 this的类型对应类类型引用即哪个对象调用就是哪个对象的引用类型this只能在成员方法中使用在成员方法中this只能引用当前对象不能再引用其他对象this是“成员方法”第一个隐藏的参数编译器会自动传递在成员方法执行时编译器会负责将调用成员方法对象的引用传递给该成员方法this负责来接收 在代码层面下图右侧中的Date类也是可以通过编译的 this.成员变量 -- 访问成员变量 this.func() – 访问当前的成员方法 public void func() {System.out.println(hahah);}public void printDate() {System.out.println(年this.year月this.month日this.day);this.func();}this() – 调用当前类的构造方法 7.5 对象的构造及初始化 7.5.1 如何初始化对象 在Java方法内部定义一个局部变量时必须要初始化否则会编译失败。 public static void main(String[] args) { int a; System.out.println(a); } // Error:(26, 28) java: 可能尚未初始化变量a要让上述代码通过编译非常简单只需在正式使用a之前给a设置一个初始值即可。如果是对象 public static void main(String[] args) {Date d new Date();d.printDate();d.setDate(2021,6,9);d.printDate(); }需要调用之前写的SetDate方法才可以将具体的日期设置到对象中。通过上述例子发现两个问题 每次对象创建好后调用SetDate方法设置具体日期比较麻烦那对象该如何初始化局部变量必须要初始化才能使用为什么字段声明之后没有给值依然可以使用 7.5.2 默认初始化 在上文中提出的第二个问题为什么局部变量在使用时必须要初始化而成员变量可以不用呢 public class Date {public int year;public int month;public int day;public Date(int year, int month, int day) {// 成员变量在定义时并没有给初始值, 为什么就可以使用呢System.out.println(this.year);System.out.println(this.month);System.out.println(this.day);}public static void main(String[] args) {// 此处a没有初始化编译时报错// Error:(24, 28) java: 可能尚未初始化变量a// int a;// System.out.println(a);Date d new Date(2021,6,9);} }对于 Date d new Date(2021,6,9); 在JVM中做了很多事情如下 检测对象对应的类是否加载了如果没有加载则加载为对象分配内存空间处理并发安全问题 比如多个线程同时申请对象JVM要保证给对象分配的空间不冲突初始化所分配的空间 即对象空间被申请好之后对象中包含的成员已经设置好了初始值比如 7.5.3 就地初始化 就是在声明成员变量时就直接给出了初始值。 public class Date {public int year 1900;public int month 1;public int day 1;public Date() {}public Date(int year, int month, int day) {}public static void main(String[] args) {Date d1 new Date(2021,6,9);Date d2 new Date();} }7.5.4 构造方法 概念 构造方法也称为构造器是一个特殊的成员方法该方法没有返回值名字必须与类名相同在创建对象时由编译器自动调用并且在整个对象的生命周期内只能调用一次。 public class Date {public int year;public int month;public int day;// 构造方法// 名字与类名相同没有返回值类型设置为void也不行// 一般情况下使用public修饰// 在创建对象时由编译器自动调用并且在对象的生命周期内只调用一次public Date(int year, int month, int day){this.year year;this.month month;this.day day;System.out.println(Date(int,int,int)方法被调用了);}public void printDate(){System.out.println(year - month - day);}public static void main(String[] args) {// 此处创建了一个Date类型的对象并没有显式调用构造方法Date d new Date(2021,6,9); // 输出Date(int,int,int)方法被调用了d.printDate(); // 2021-6-9} }注意构造方法的作用就是对对象中的成员进行初始化并不负责给对象开辟空间。 特性 名字必须与类名相同没有返回值类型设置为void也不行创建对象时由编译器自动调用并且在对象的生命周期内只调用一次(相当于人的出生每个人只能出生一次)构造方法可以重载(用户根据自己的需求提供不同参数的构造方法) public class Date {public int year;public int month;public int day;boolean flg;String name;public Date() {this.year 2008;this.month 8;this.day 8;//this(2008,8,8); // 必须放到 当前构造方法的第一行 不能形成环System.out.println(执行了不带参数的构造方法);}public Date(int year,int month,int day) {this.year year;this.month month;this.day day;System.out.println(执行了带三个参数的构造方法);}public void printDate() {System.out.println(年this.year月this.month日this.day); /* this.func();System.out.println(flg);System.out.println(name);*/}public static void main(String[] args) {Date date new Date();Date date2 new Date(2008,1,1);/* date.setDate(1945,9,1);date.printDate();*//* Date date2 new Date();date2.setDate(1949,10,1);date2.printDate();*/} }名字相同参数列表不同因此构成了方法重载。 构造方法至少有1个。也就是说当你没有写任何的构造方法时Java会自带一个不带参数的构造方法。 对象的初始化一定会 调用构造方法。 对象的产生 简单来说一定会有2步 为对象分配内存调用合适的构造方法 一旦这个类 提供了 任何一种构造方法 编译器 都将不会再为你提供 不带参数的构造方法。 把下面这段删了然后Date date new Date();就会报错也就是当你有了任何一种构造方法编译器就不会提供不带参数的构造方法。 public Date() { /* this.year 2008;this.month 8;this.day 8;*/this(2008,8,8); // 必须放到 当前构造方法的第一行 不能形成环System.out.println(执行了不带参数的构造方法);} 快捷键构造几个参数的构造方法 构造方法中可以通过this调用其他构造方法来简化代码 public Date() { /* this.year 2008;this.month 8;this.day 8;*/this(2008,8,8); // 必须放到 当前构造方法的第一行 不能形成环System.out.println(执行了不带参数的构造方法);}
http://www.dnsts.com.cn/news/60250.html

相关文章:

  • 无锡市建设局网站中国企业信息
  • 重庆工程招标网站有哪些长沙网站推广公司
  • 网站建设注册什么公司好做一手房用什么网站
  • 昆明做网站公司哪家好前端开发需要学什么语言
  • 成都电商平台网站设计电影网站建设 流程
  • 苏州网站建设学费门户网站开发维护合同范本
  • 哪些客户需要做网站微信商户服务商平台
  • wap网站系统成都百度网站优化
  • 网站备案中页面网页设计与制作(第3版)书籍
  • 合肥哪家做网站wordpress文章分类跳转到指定模板
  • 设计网站怎么做品牌手机网站建设
  • 响应式 网站 开发泛华建设集团网站
  • 高档网站建维护网站多少钱
  • 建设网站是什么职位手机网站 win8风格
  • 男女性直接做的视频网站seo网站诊断优化流程
  • asp网站打开很慢的原因网站入股云建站
  • 做百度网站需不需要备案广西住房和城乡建设厅招聘
  • 优班图搭建网站wordpress怎么弄会员
  • 律师网站建设建议wordpress安装文件
  • 工装设计网站案例网站开发方案服装网站简介
  • 免费企业邮箱账号密码深圳网站维护seo
  • 域名有了主机有了如何做网站五十一团 黑龙江生产建设兵团知青网站
  • 官方网站开发公司排名设计自己的专属logo
  • 仙游县住房和城乡建设局网站读后感页面设计模板
  • 如何查网站的备案号wordpress按钮代码
  • 怎么制作有效网站男和女做暖暖网站
  • 做网站的抬头怎么做珠海seo海网站建设
  • 聚美联盟网站怎么做外贸网站推广seo
  • 网站策划知识电子商务网站建设有什么认识
  • 网站建设调查表上海徐汇区网站建设公司