Java4Android之面向对象基础篇


面向对象基础(一)

什么是面向对象?

 

1.      面向对象是一种编程方法;

2.      面向对象是一种思维方式;

3.      面向对象不是一种编程语言。

 

应该如何学习面向对象?

 

1.      掌握一门面向对象语言的语法;

2.      掌握面向对象的思维方式;

3.      熟悉面向对象设计原则;

4.      掌握面向对象设计模式。

 

面向对象的思维方式?

 

什么是面向对象思维方法?

1.      首先确定谁来做,其次确定怎么做;

2.      首先考虑整体,其次考虑局部;

3.      首先考虑抽象,其次考虑具体。

 

总结:

1.      不要认为掌握了一门面向对象语言就是掌握了面向对象;

2.      习惯于将面向对象与现实世界做比较。

其实,所谓的面向对象就是实际生活中我们的思维方式;

学习秘诀:拥有一颗面向对象的心。  面向对象的终极目标:减少重复代码


面向对象基础(二)

 

1.      创建类的方法

定义类的方法:

class 类名

{

           属性;

           方法;

}

属性也叫成员变量,主要用于描述类的状态

方法也叫成员方法,主要用于描述类的行为

 

(类名)

 
类的表示方法:

Dog

color

(成员变量)

 
age

name

(成员函数)

 
bark()

jump()

 

eg:

class Person

{

           int age;

           void shout()

           {

                    System.out.println(“oh,my  god!  Iam”+age);

           }

}

age是类的属性,也叫类成员变量

shout是方法也叫类的成员函数

shout方法可以直接访问同一个类中的age变量,如果一个方法中有与成员变量同名的局部变量,该方法中对这个变量名的访问是局部变量,而不再是成员变量


2.      创建对象的方法

生成对象的方法:

格式:类名 对象名=new 类名();

例如: Dog dog = new Dog();

ps:对象的本体存储于堆内存中,而对象的引用存储于栈内存中。

 

1)        Dog d = new Dog();

创建一个Dog的引用

2)        Dog d = new Dog();

创建一个Dog的对象

3)        Dog d =new Dog();

将创建的Dog对象赋给这个引用

 

3.      对象和对象的引用

 

类和对象的关系

总结:

  1. 对象的创建方法;
  2. 堆内存与栈内存的使用;
  3. 类和对象的关系;

类是抽象的概念,对象是具体的个体。

 

面向对象基础(三)

 

1.      对象的使用方法;

使用对象调用变量和函数:

1)        对象.变量

2)        对象.函数()

eg:

Dog.java:

class Dog{

           String name;

           int age;

           String color;

 

           void jump(){

                    System.out.println(“jump”);

           }

}

 

Test.java:

class Test{

           public static void main(String args[]){

                    Dog d = new Dog();

 

                    d.name = “旺财”;

                    d.age = 2;

                    d.color = “黑色”;

 

                    d.jump();

                    System.out.println(“名字是” + d.name);

          }

}


2.      多对象的创建方法;

生成多个对象:

Dog d1 = newDog();

Dog d2 = newDog();

eg:

更改Test.java:

class Test{

           public static void main(String args[]){

                    Dog d1 = new Dog();

                    Dog d2 = new Dog();

 

                    d1.name = “旺财”;

                    d2.name = “小黄”;

 

                    d1.jump();

                    d2.jump();

                    System.out.println(“名字是” + d1.name);

                    System.out.println(“名字是” + d2.name);

        }

}

 

3.      匿名对象的创建和使用方法;

匿名对象的使用:无对象名

可以不定义对象的引用名称,而直接调用这个对象的方法。这样的对象叫做匿名对象,比如:

new Dog().jump();

凡是见到new,就会在堆内存中生成一个新的对象;  匿名对象只能使用一次,之后不能被找到。

 

面向对象基础(四)

 

1.      函数的重载

eg:

A.java:

class A{

           void funA(){

                    System.out.println(“没有参数的funA函数”);

           }

           void funA(int i){

                    System.out.println(“拥有一个整型参数的funA函数”);

          }

}

 

Test.java:

class Test{

           public static void main(String args[]){

                    A  a = new A();

                    a.funA();

                    a.funA(10);

           }

}

 

重载:同一种行为对应不同的实现。

重载的定义:

1)        两个或者多个函数在同一个类当中;

2)        函数名相同;

3)        参数列表不同。

 

2.      构造函数的作用

Person.java:

class Person{

           Person(String n,int a){

                    name = n;

                    age = a;

           }

           String name;

           int age;

}

Test.java:

class Test{

           public static void main(String args[]){

                    Person person1 = new Person(“zhangkuan”,24);

                    Person person2 = new Person(“shuiyue”,23);

                    System.out.println(“person1的姓名:” + person1.name + “person1的年龄:” + person1.age);

                    System.out.println(“person2的姓名:” + person2.name + “person2的年龄:” + person2.age);

          }

}

A.       构造函数的函数名必须和类名相同;

B.       构造函数没有返回值类型的定义;

C.       使用new调用构造函数;

D.       如果类中没有定义构造函数,则编译器将自动产生参数为空且方法体也为空的构造函数;

E.        在类中,如果自己已经定义了构造函数,则编译器不会再自动产生构造函数。

 

你可能感兴趣的:(Java4Android,android,java,string,class,编译器,设计模式)