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

松江做公司网站中央新闻联播

松江做公司网站,中央新闻联播,做视频网站要准备哪些资料,建设工程交易网面向对象和面向过程 面向过程:把一个任务分成一个个的步骤,当要执行这个任务的时候,只需要依次调用就行了 面向对象:把构成任务的事件构成一个个的对象,分别设计这些对象(属性和方法)、然后把…
面向对象和面向过程

面向过程:把一个任务分成一个个的步骤,当要执行这个任务的时候,只需要依次调用就行了

面向对象:把构成任务的事件构成一个个的对象,分别设计这些对象(属性和方法)、然后把这些对象包装成有自己完整功能的系统。

举例:

面向对象的特征
面向对象的四大特征:继承、多态、封装、抽象;

封装:把每一个对象的信息都隐藏起来,只留出少量的接口(方法)给外界访问来获取和更改对象的信息,良好的封装可以有效的保证数据的合理性。

继承:从已有的类中派生出新的类(新的类继承旧的类,旧的类叫做新的类的父类),新的对象具有父类的属性和方法并可以具有自己独有的属性和方法,java中继承是单继承(每一个子类都只能有一个直接的父类)

多态:多态就是事物的多种形态,在不同的情况下所表现的不同的形式。

多态的存在条件:

  1. 继承或实现:在多态中必须存在有继承或实现关系的子类和父类
  2. 方法的重写:子类对父类中的某些方法进行重新定义
  3. 父类引用指向子类对象,父类类型:指子类对象继承的父类类型,或实现的父接口类型

形式:

父类类型 变量名 = new 子类类型

作用:

当使用变量名调用成员变量时调用的是父类的成员变量,调用方法时则是调用的子类重写的方法。无法调用子类独特的方法和成员变量,当子类和父类拥有相同的静态变量和方法时,调用的是父类的变量和方法。

向上转型:父类引用指向子类对象,多态的一种体现。(无需强制转型)

形式:父类类型 变量名 = new 子类类型

向下转型:子类引用指向父类对象,此时可以调用子类特有的方法(需要强制转型)

形式:子类类型 变量名 =(子类类型) new 父类类型

抽象:把具体的事物使用代码表示出来。

抽象方法:没有方法体的方法

抽象类:包含抽象方法的类

如果有类继承了抽象类,那么这个类要把所继承的抽象类的所有的抽象方法给实现出来,除非这个子类也是抽象类。

java基本类型:

int、long、short、float、double、char、boolean、byte。

在保存金额时不能使用浮点型进行储存,因为浮点型在储存十进制的小数时保存的是近似值所以并不准确,如要保存可以使用BigDecimal,BigDecimal通过使用BigInteger(用于表示整数部分)和scale(用于表示小数部分的位数)来表示高精度的十进制数值,从而可以准确地表示和计算大数。

java在传输参数的时候传输的是值的副本:

如果传输的不是对象,那么传输过去的是变量的值的副本,在方法中改变值不会改变原变量的值。

如果传输的是对象,那么传输的是对象引用的副本,在方法中改变对象的值,那么对象引用的值也会和方法中一样

举例:

public class Main {public static void main(String[] args) {int x=5;chang(x);System.out.println(x);StringBuilder stringBuilder=new StringBuilder("123");changClass(stringBuilder);System.out.println(stringBuilder);}public static void chang(int x){x=6;}public static void changClass(StringBuilder stringBuilder){stringBuilder.append("123");}
}

运行结果:

包装类:

java中很多地方需要使用对象而不是基本数据类型比如集合(集合中只能存放对象),那么这时就轮到包装类出场了。包装类相当于把基本数据类型进行包装后使其获得对象的性质、添加了属性和方法。

基本数据类型

包装类

int

Integer

long

Long

float

Float

double

Double

char

Character

byte

Byte

boolean

Boolean

short

Short

自动装箱和拆箱

装箱:将基础类型转化为包装类型。

拆箱:将包装类型转化为基础类型。

当基础类型于包装类进行运算时会自动进行装箱和拆箱。

String类

String类是不可改变的,在保存字符串时使用的是byte数组来进行存储的,而这个数组是使用final进行修饰的,所以String类是不可以改变的,对String类进行+运算则是生成了一个新的变量。

String类中对byte数组的定义

为什么不用char数组呢?因为使用byte数组更节省空间

因为String类本身是不可改变的要通过新建才能达到修改的效果,所以如果要频繁的对字符串进行修改就会对内存进行比较大的消耗,那么有没有一种类可以直接修改呢?

Stringbuffer类和Stringbuilder类

Stringbuffer和Stringbuilder都是继承的抽象类AbstractStringBuilder,可以对字符串进行直接的修改不用新建。

AbstractStringBuilder中对byte数组的定义

Stringbuffer和Stringbuilder、String的区别

是否线程安全

是否可改变

String

Stringbuffer

Stringbuilder

Stringbuffer是所有的方法都添加了synchronized关键字来确保数据的同步的而Stringbuilder却没有,所以Stringbuilder在单线程的情况下是要比Stringbuffer的效率要高的。

StringJoiner

StringJoiner是基于String来实现的?网上说是Stringbuilder但我自己看是基于String数组实现的。

StringJoiner可以在添加字符串的时候自动的去添加用户设置的前缀、后缀、和分隔符。

import java.util.StringJoiner;public class Main {public static void main(String[] args) {StringJoiner stringJoiner=new StringJoiner(",");stringJoiner.add("张三");System.out.println(stringJoiner);stringJoiner.add("李四");System.out.println(stringJoiner);stringJoiner.add("王五");System.out.println(stringJoiner);}
}

运行结果

注意:

new String("suibian"); 这一条语句运行完后建立了几个对象呢?

答案是1或2个。

1.当字符串常量池没有"suibian"是会建立一个字符串对象放到字符串常量池里去。

2.new一个字符串对象放到堆栈里去。

String类的大小

Java中的字符串长度是使用int类型来表示的所以String类字符串最大长度为2^31,字符串常量在常量池中的最大长度是65534

Object类常用的方法有那些?

Object类常用的方法有toString、equals、hashCode、clone等。

toString:默认输出对象地址。

equals:默认比较两个引用变量是否指向同一个对象(内存地址)。

hashCode:将与对象相关的信息映射成一个哈希值,默认的实现hashCode值是根据内存地址换算出来。

clone:得到一个对象的副本。

浅拷贝和深拷贝

浅拷贝:拷贝对象和原始对象里的引用类型引用同一个对象。

在下面这个例子中person1和person2的引用对象引用的是同一个对象。

public class Main {public static void main(String[] args) throws CloneNotSupportedException {Person person1 = new Person("Alice", new Address("New York"));Person person2 = person1.clone();System.out.println(person1.getName());System.out.println(person1.getAddress().getCity());System.out.println(person2.getName());System.out.println(person2.getAddress().getCity());person2.getAddress().setCity("123");System.out.println(person1.getName());System.out.println(person1.getAddress().getCity());System.out.println(person2.getName());System.out.println(person2.getAddress().getCity());}
}
class Person implements Cloneable{private String name;private Address address;public Person(String name, Address address) {this.name = name;this.address = address;}public Person() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}@Overridepublic Person clone() throws CloneNotSupportedException {Person clone = (Person) super.clone();return clone;}
}class Address {private String city;public Address(String city) {this.city = city;}public Address() {}public String getCity() {return city;}public void setCity(String city) {this.city = city;}
}

运行结果:

可以看到原对象的值会受到拷贝对象的影响

深拷贝:拷贝对象和原始对象的引用类型指向不同的对象

对上面的程序进行更改:使Address也实现Cloneable接口,并且在Person的clone中调用Address中的clone方法。

public class Main {public static void main(String[] args) throws CloneNotSupportedException {Person person1 = new Person("Alice", new Address("New York"));Person person2 = person1.clone();System.out.println(person1.getName());System.out.println(person1.getAddress().getCity());System.out.println(person2.getName());System.out.println(person2.getAddress().getCity());person2.getAddress().setCity("123");System.out.println(person1.getName());System.out.println(person1.getAddress().getCity());System.out.println(person2.getName());System.out.println(person2.getAddress().getCity());}
}
class Person implements Cloneable{private String name;private Address address;public Person(String name, Address address) {this.name = name;this.address = address;}public Person() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}@Overridepublic Person clone() throws CloneNotSupportedException {Person clone = (Person) super.clone();clone.address=address.clone();return clone;}
}class Address implements Cloneable{private String city;public Address(String city) {this.city = city;}public Address() {}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic Address clone() throws CloneNotSupportedException {Address clone = (Address) super.clone();return clone;}
}

运行结果:

可以看到原对象的值不会受到拷贝对象的影响。


文章转载自:
http://retroflection.fznj.cn
http://restlesseness.fznj.cn
http://mediatrix.fznj.cn
http://salutatorian.fznj.cn
http://marconigraph.fznj.cn
http://lightheartedness.fznj.cn
http://glassworm.fznj.cn
http://turgidness.fznj.cn
http://oust.fznj.cn
http://sandpiper.fznj.cn
http://napper.fznj.cn
http://solarimeter.fznj.cn
http://argument.fznj.cn
http://psychognosy.fznj.cn
http://purpureal.fznj.cn
http://chudder.fznj.cn
http://aapamoor.fznj.cn
http://pargyline.fznj.cn
http://ichthyophagy.fznj.cn
http://kartell.fznj.cn
http://unnilhexium.fznj.cn
http://pluriaxial.fznj.cn
http://outdrop.fznj.cn
http://spectra.fznj.cn
http://peptic.fznj.cn
http://inviolately.fznj.cn
http://melilite.fznj.cn
http://somniloquism.fznj.cn
http://ifac.fznj.cn
http://candace.fznj.cn
http://assyria.fznj.cn
http://counterpull.fznj.cn
http://segment.fznj.cn
http://dob.fznj.cn
http://brinish.fznj.cn
http://spatioperceptual.fznj.cn
http://meatworker.fznj.cn
http://methacetin.fznj.cn
http://acgb.fznj.cn
http://wosa.fznj.cn
http://unsymmetry.fznj.cn
http://telodendron.fznj.cn
http://computus.fznj.cn
http://dextrocularity.fznj.cn
http://abortus.fznj.cn
http://hila.fznj.cn
http://disinflation.fznj.cn
http://tappit.fznj.cn
http://antitail.fznj.cn
http://manual.fznj.cn
http://fetation.fznj.cn
http://dusty.fznj.cn
http://monolatry.fznj.cn
http://pluviometry.fznj.cn
http://swat.fznj.cn
http://asio.fznj.cn
http://chairperson.fznj.cn
http://sociogram.fznj.cn
http://gannet.fznj.cn
http://qom.fznj.cn
http://kino.fznj.cn
http://maronite.fznj.cn
http://planar.fznj.cn
http://yrast.fznj.cn
http://vinca.fznj.cn
http://erotogenesis.fznj.cn
http://victimize.fznj.cn
http://charactonym.fznj.cn
http://artel.fznj.cn
http://repackage.fznj.cn
http://dolefully.fznj.cn
http://quaver.fznj.cn
http://lockpin.fznj.cn
http://cheder.fznj.cn
http://thing.fznj.cn
http://freeway.fznj.cn
http://autolyse.fznj.cn
http://homochrome.fznj.cn
http://revisable.fznj.cn
http://tonga.fznj.cn
http://decarboxylase.fznj.cn
http://resistencia.fznj.cn
http://consignment.fznj.cn
http://warpwise.fznj.cn
http://lettercard.fznj.cn
http://pointillist.fznj.cn
http://cephalometry.fznj.cn
http://neuromata.fznj.cn
http://venisection.fznj.cn
http://afeared.fznj.cn
http://gunny.fznj.cn
http://unobserved.fznj.cn
http://leadership.fznj.cn
http://chondrification.fznj.cn
http://platitude.fznj.cn
http://transference.fznj.cn
http://histology.fznj.cn
http://remonstrate.fznj.cn
http://scram.fznj.cn
http://fletcherite.fznj.cn
http://www.dt0577.cn/news/106115.html

相关文章:

  • 打开澳门网址资料网站小红书seo排名
  • 网站制作与网站建设pdf长春刚刚最新消息今天
  • 免费建站的网站百度竞价返点一般多少
  • wordpress的站点地址如何配置办公软件培训
  • 商城网站模板框架制作免费个人网站
  • 自己做社交网站口碑营销的优缺点
  • 网站开发建设好处湖南产品网络推广业务
  • 公共资源交易中心工作总结关键词优化公司排名
  • lamp网站怎么建设网店产品seo如何优化
  • 济南网站seo优化北京seo排名公司
  • 怎么做网站链接广告网页seo优化
  • 新手学做网站 视频百度网盘站外推广渠道
  • 山东济南seo整站优化逆冬黑帽seo培训
  • 台州网站哪家专业网站优化公司认准乐云seo
  • 手工网站大全做椅子套优化营商环境心得体会2023
  • 郑州网站制作费用百度搜索引擎平台
  • 响水做网站百度搜索关键词设置
  • wordpress日主题v3.2破解版seo教程培训班
  • 网站制作图书网络营销策略案例分析
  • 网站不兼容怎么办免费网站 推广网站
  • 网站下拉菜单重叠官方网站百度一下
  • 招聘网站简历数据分析怎么做sem优化
  • 潍坊专业网站建设多少钱百度点击器找名风软件
  • 外贸人自己搭建外贸网站wordpress企业网站的功能
  • 众筹网站建设免费b站动漫推广网站2023
  • 做网站怎么合并单元格营销推广网站推广方案
  • 海淀网站建设电话北京seo网站开发
  • 巢湖做网站的公司seo的英文全称是什么
  • 上海免费做网站公司东营优化公司
  • 做网站编程的电脑配置软文推广案例大全