幻想编程

JAVA学习全过程(5)

时间:14-03-09 15:56:43点击:475

现在说说什么是面向对象,首先说说什么是类

在现实世界中,经常有属于同一类的对象。例如,你的自行车 只是世界上很多自行车中的一辆。在面向对象软件中,也有很 多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑 等。可以利用这些对象的相同特征为它们建立一个蓝图。对象 的软件蓝图称为类。

还比如说,动物类,人类,机器类,总之,类是一些相同事物的**

那么,什么是对象? 对象就是类的某一具体

比如,动物类的有个动物是猫,这个猫就是一个对象

在比如,人类中有个叫小明的小朋友,这个小明就是对象

实实在在的东西就是对象,抽象的东西就是类

类是对象的一种模版,对象就是根据这个模版创造出来的东西(也称做类的实例)

下面进入代码实例

public class HelloWorld {

public static void main(String[] args) {

System.out.println("hello world!"); }

}

这就是一个类,怎么创建?用class关键字+类名 ,类名通常首字母大写

当然用eclipse编译器建类就没那么麻烦

值得一提的是,main主函数并不属于HelloWorld 这个类,它充其量是借用了HelloWorld的场地

java有规定,代码不是脱离类运行

其实一个类就这么简单

class HelloWorld {


一个类的构成是由 成员属性(变量)+成员方法(函数)

package Mypackage;

public class HelloWorld {

int a=1;

public static void main(String[] args) {

System.out.println(a);

}

}

a是HelloWorld这个类之中的一个属性(变量),那么main主函数能访问吗?

答案是不能,静态方法只能访问静态变量和方法

那么同样,如果要访问HelloWorld的方法,也必须是静态的

package Mypackage;

public class HelloWorld {

static int a=1;

static void print(){

System.out.println("hello world");

}

public static void main(String[] args) {

System.out.println(a);

print();

} }

这样就可以访问

这有一道面试题

public class A {

public static String str="aaa";

public A()

{

str="bbb";

}

public static void main(String[] args) {

System.out.println(str);

} }

public A()这个是类的构造方法

最后打印什么呢,自己琢磨

现在我们来面向对象编程

package Mypackage;

public class HelloWorld {

String a="hello world!";

void print(){

System.out.println(a);

}

public static void main(String[] args) {

} }

HelloWorld 是一个类,这个类有个属性和一个方法

只要把这个类生成一个对象,或者说生成一个实例,我们就可以根据对象来访问属性和方法

怎么创建对象?用new关键字

HelloWorld hd=new HelloWorld();

记住,是基于什么类来创建对象 我们是创建HelloWorld的对象

所以 需要 类名 对象名=new 类名的对象

HelloWorld hd 中hd是前面所说的引用对象,名字是可以自己随意取的,你也可以取hello

不要以为是对象存进了hd里,hd相当于指针,它指向对象的地址

通过这个hd引用,就可以访问对象的属性和方法

用。符号来调用,如下

package Mypackage;

public class HelloWorld {

String a="hello world!";

void print(){

System.out.println(a);

}

public static void main(String[] args) {

HelloWorld hd=new HelloWorld();

System.out.println(hd.a);

hd.print();

} }

结果是

hello world!

hello world!

现在我们用面向对象编程

怎么创建个HelloWorld的对象?用new关键字

类名 对象名=new 类名();

也就是

HelloWorld hd=new HelloWorld(); 为什么会有括号,以后说

hd是前面所说的引用类型 ,他相当于指针,指向 HelloWorld对象的地址

不要以为是对象存进了hd里

通过引用hd 加。符号就可以访问对象属性和方法

如下

package Mypackage;

public class HelloWorld {

String a="hello world!";

void print(){

System.out.println(a);

}

public static void main(String[] args) {

HelloWorld hd=new HelloWorld();

System.out.println(hd.a);

hd.print();

} }

现在我们用面向对象编程

怎么创建个HelloWorld的对象?用new关键字

类名 对象名=new 类名();

也就是

HelloWorld hd=new HelloWorld(); 为什么会有括号,以后说

hd是前面所说的引用类型 ,他相当于指针,指向 HelloWorld对象的地址

不要以为是对象存进了hd里

通过引用hd 加。符号就可以访问对象属性和方法

如下

package Mypackage;

public class HelloWorld {

String a="hello world!";

void print(){

System.out.println(a);

}

public static void main(String[] args) {

HelloWorld hd=new HelloWorld();

System.out.println(hd.a);

hd.print();

} }

结果是

hello world!

hello world!

引用是在内存中的桟里,对象是在内存中的堆里


对象不一定非得要一个引用要指向

直接new 对象也可以

像下面

package Mypackage; public class HelloWorld {

String a="hello world!";

void print(){

System.out.println(a);

}

public static void main(String[] args) {

new HelloWorld().print();

} }

结果是hello world!

这等于是对象自身来进行要调用方法

引用对对象来说类似于一个代理,或者是一个别名

如果有多个对象的话,不用引用不好区分