学习java有什么好处?
那先说说我为什么学java ,学习jsva是一种偶然的结果,接触过后确实喜欢 ,
1. java有什么优点 纯纯的面向对象的语言 ,
什么是面向对象->
先说说之前,在面向对象之前是编程是面向过程的,什么是面向过程,举一个简单的例子
1+2=3 我们可以将其解析成1+1+1=3 把2拆分的就是面向过程,随着时代发展,发现面向过程越来越复杂,于是有了面向对象。
对象也是一个抽象的概念,我们像上帝一样赋予我们创建对象属性,像凳子一样,我们赋予其长宽高,能坐的属性,其实不管合理不合理你都能赋予其功能)(就像凳子能飞,本身不合理,但是你可以将它扔飞,因此他有了会飞的属性),也就因此有了一句万物皆可对象的话,你可以将万物赋予给对象。
而java就是面向对象,为什么叫做面向对象,其中面向是什么,
举一个例子来解释面向过程和面向对象。
比如我们想做蛋炒饭
面向过程->我们需要自己准备,鸡蛋,米饭,混合,炒菜,装盘。
面向过程,就像->妈 ,我饿了,我要吃蛋炒饭。(挨打不怪我!)
你亲爱的老妈就是你面向的对象,老妈来处理你的所需,根据你提出的需求来处理不同的食材。
OOP面向对象三大特性
封装:也就是将凳子的属性封装起来,一眼看去你不知他的长宽高,重量(你能看出来,只能说你牛逼,我服了),而我们可以调用方法(通过用尺子去量,秤来称量),你可以得到数据,但是得按我我的方法来获取数据,体现了一部分安全性。(这里提一嘴反射(反射就象你一眼看出来数据,无他,你熟悉了他的本质,java提供了反射的方法))
继承:一个对象继承另一个对象,就像儿子继承父亲的东西,这有什么特点呢,需要理解的,就是爸爸给你你才能拥有,爸爸不给你,你想继承也得不到。儿子通过自己的发展可以拥有自己的东西,当然,他还可以选择性的将东西继承给孙子。
这时后有个问题,儿子想要的太多了,爸爸给不了太多,儿子只能有一个亲生的爸爸是吧。
哎嗨亲生爸爸?我给儿子找点干爹撑撑场面,合理吧!
接口,也就是干爹,接口也有爸爸是吧,他也可以被继承,去继承接口,但只能继承一个,干爹可以有多个干儿子,干儿子可以有多个干爹。
什么是接口呢?那不得不说一下抽象类!->
抽象类,就是把一类相似的东西,抽象的抽取出来,就像鸟儿和昆虫都会飞,都是挥动翅膀,那我说狗子也会飞,你说我开玩笑!那我给你唠唠
接口就是让狗子抽象的飞行,狗子不会飞,但是我让狗子坐飞机,飞机的飞和鸟儿的飞是不一样的,抽象类的定义,抽取出来,他们都会飞,怎么飞我就不管了。
多态:狗子,飞机都会飞了,我不能老是抽象的概念吧,我得让他具体一点,所以我把他指明是什么,这就是多态的一种体现。泛型的一种应用
抽象使复杂的事情简单化
从亲手操作到妈妈操作
嗯,很符合我的习惯!妈妈来个蛋炒饭!
public staic void main(String[] args) {}
啊,我的java的开始就是他,最最基础的helloworld ,通过这个方法我接触到了Java的世界,他就是一把钥匙
这个方法有什么用,它就相当于门上的钥匙,通过这个你能进入Java的内层世界,Java程序的入口。
来到这里,我们想通过java程序来输出 “hello world”
可以简单的在public staic void main(String[] args) {
system out println("hello,world");
},
你可能有疑问,这我手打也可以啊?但是呢,你打一千遍不累吗?
不说这个了!没什么用
如何实现在main之前执行操作,用静态代码块,不管静态代码块所在位置,我在类加载的时候就执行了
Java初始化的顺序是什么?
(方法:就是得到结果定义的过程。构造方法就是创建人的方法,也叫构造函数方法有参数,参数就是 成员属性,通过属性来确定形状,Java有个女娲,就是Object,他是所有类的父类,女娲从何而来,可能就像我们创建了她一样。)
在实例化创建对象之时首先要进行初始化,将属性归零,初始化完成惠普,才会调用构造方法创建对象。
Java程序的初始化过程一般遵循3个原则
静态的优先于非静态的初始化,因为静态的只初始化一次,在类加载的时候进行初始化,而非静态的可以初始化多次。(静态的叫做固定属性,比如三角形两条线的和大于第三边,非静态的可以理解为不固定的属性类似凳子的长宽高)
父亲优于子类先进行初始化,得先有爸爸才能有儿子(孙猴子不算,按道理人家的父亲是老天,天生地养)。
按照成员变量的顺序进行初始化(无规矩不成方圆,一步一步来,要不可能会乱)
所以 顺序就是: 父类的静态变量-》父类的静态代码块-》子类的静态变量-》子类的静态代码块-》父类的非静态变量-》父类的非静态代码块-》父类的构造方法-》子类的非静态变量-》子类的非静态代码块-》子类的构造方法。
public staic void main(String[] args) 中 public
他表示这个方法的作用域,英文,公共的,表示大家都可以来访问这个方法,在别的类都可以访问到。
作用域 | 当前类 | 同一package | 子类 | 其他package |
public | yes | yes | yes | yes |
protected | yes | yes | yes | no |
friendly(default) | yes | yes | no | no |
private | yes | no | no | no |
Java一个文件中可以有多个class类但只能有一个用public修饰
构造函数规则
不能有返回值,方法名和类名一致,一个类可以有多个构造函数,参数不相同,不能被继承,儿子可以用super.调用父类的方法,每个类都有构造方法,你不写,编译器也会给你创建
java中clone克隆
Java中有两种复制克隆方分为 浅拷贝和深拷贝,浅拷贝我复制的是你对象的地址,别人访问克隆我,本质还是访问你,我只是把你的地址放到我身上。深拷贝,就是我把你有的我都拿过来,我就另一个你。
Java在处理基本数据类型时(byte,char,short ,int,long,float ,double,boolean)都是值传递,string是引用数据类型,不是基本数据类型。