一,JavaScript中的创建对象(复习)
<script>
//直接创建式
var xuesheng = new Object()
xuesheng.name="小明";
xuesheng.dohomework=function(){
console.log(xuesheng.name+"正在写作业");
}
xuesheng.dohomework();
//初始化器方式
var xuesheng = {
name:"小明",
dohomework:function(){
console.log(this.name+"正在做作业") ;
}
}
xuesheng.dohomework();
//原型式
function Student(){
}
Student.prototype.name="学生";
Student.prototype.mobile=110;
Student.prototype.dushu=function(){
console.log(this.name+"在读书");
}//定义
var xuesheng=new Student();//再创建对象
xuesheng.dushu();//然后使用
//构造函数式
function Student(age){
this.name="小明";
this.age=age;
this.dohomework=function(){
console.log(this.name+"在写作业");
}
}
var bingo= new Student(12);
bingo.dohomework();
//混合式
function Daxuesheng(name,age){
this.name=name;
this.age=age;
}
Daxuesheng.prototype.zhuangtai=function(){
console.log(this.name+"今年"+this.age+"岁了");
}
var xuexi=new Daxuesheng("小红","15");
xuexi.zhuangtai();
</script>
二、java中的创建对象
1、对象的属性和方法以及类
1、Java中将现实对象中的信息称为属性(也叫全局变量)
,将现实对象中的功能称为方法。
2、Java中的“类”:
Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类。
2、如何定义类
1、定义一个类的步骤:1、定义类名;2、定义类的属性;3、定义类的方法
2、
public class Test{
String name;
int id;
public void write(){
}
}
三、对象的创建和使用
1、创建:通过new关键字创建对象。创建对象又称实例化对象。
Test student = new Test();
2、使用:
student.name="小明";//调用属性
student.write();//调用方法
四、类与对象
1、类是创建对象的模板,确定对象将会拥有的属性和方法。
2、类是对象的抽象化;对象是类的具体化。
3、类是一种数据类型,是对象的数据类型(不同于int等基本类型:类具有方法)。
五、面向对象与面向过程
1、面向对象是一种编程思想,这种编程思想凸显对象在编程过程中的重要作用。
什么是面向对象呢?简单的说就是让对象成为类与类之间的“通信”的桥梁,
通过对象使类之间形成有机的整体。
面向对象编程语言以对象为中心,以消息为驱动,即程序=对象+消息;
2、面向过程编程语言则以过程为中心,以算法为驱动,即程序=算法+数据;
3、区别
1、面向对象是从宏观方面思考问题,而面向过程可以说是从细节处思考问题。
2、在面向对象中,也存在面向过程。
六、如何定义方法
1、
访问控制符 [修饰符] 返回值类型 方法名( [参数] ){
//方法体
}
eg.
public static void move(String a ){
system.out.println(a);
}
七、方法规范
1、访问控制符——public、protected、友好的、private。
控制访问范围
2、修饰符
static修饰符用于限制方法的调用方式
1、static修饰的方法可以直接使用类名调用也可以使用类创建的对象调用;
2、非static修饰的方法只能使用类创建的对象调用。
3、其它常用方法修饰符有final和synchronized
3、返回值类型
1、如果方法没有返回值,需要用void表示。
2、方法返回基本数据类型的数据,则返回值类型必须是返回数据所属的数据类型
或者精度更高的数据类型(针对于数值类型的数据)。
3、方法返回引用数据类型的数据,则返回值类型必须是返回数据所属的数据类型
或者其父类。
4、方法如果有返回值,则必须借助return关键字将数据返回;
4、方法名
1、遵循标识符命名规则;
2、首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写;
3、方法名一般由一个动词或者动名词构成。
5、参数
1、方法可以有多个参数,各个参数之间用逗号(,)间隔。
2、方法的参数在整个方法内有效。
3、方法参数前面的数据类型用于限制调用方法时所传具体数据的数据类型;
6、动态参数
public class Test {
public static void print(int... numbers) {
for (int number : numbers) {
System.out.println(number);
}
}
public static void main(String[] args) {
print(1, 2, 3, 4, 5);
}
}
注意:
1、动态参数实质为数组;
2、动态参数必须位于参数列表的最后;
3、一个方法只能有一个动态参数
7、方法重载
1、同一个类中有多个方法名相同但参数列表不同的方法,这种现象称为方法重载(overload)。其中参数列表不同包括以下情形:
1、参数的个数不同
2、参数的对应类型不同
注意:
1、参数列表不同并不包含参数名不同,也就是说如果方法名相同,方法中参
数个数和类型相同,只是参数名不同,这样也不能称之为方法重载。
2、方法中其它构成部分不参与比较:访问控制符、修饰符、返回值类型。
2、eg.
public class Overload {
//方法重载,即方法同名
public void multiply(int a,int b) {
System.out.println(a*b);
}
public void multiply(int a,int b,int c) {
System.out.println(a*b*c);
}
public void multiply(double a,int b) {
System.out.println(a*b);
}
public static void main(String[] args) {
new Overload().multiply(2,3);//会调用第一个
new Overload().multiply(2,3,4);//会调用第二个
new Overload().multiply(2.0,3);//会调用第三个
}
}
3、一个类中有多个同名方法(构造方法或普通方法),在调用这些方法时,到底
调用哪个方法取决于调用方法时传入的参数的数据类型和个数。