一、
1、什么事面向对象?
面向对象是一种编程方法;面向对象是一种思维方式;不是一门编程语言。
2、应该如何学习面向对象?
掌握一门面向对象语言的语法;
掌握面向对象的思维方式;
熟悉面向对象设计原则;
掌握面向对象设计模式
3、什么是面向对象思维方法
首先确定谁来做,其次确定怎么做;
首先考虑整体,其次考虑局部;
首先考虑抽象,其次考虑具体
二、
1、创建类的方法
class 类名
{
属性;(也叫成员变量,主要用于描述类的状态)
方法;(也叫成员方法,主要用于描述类的行为)
}
2、创建对象的方法
格式:类名 对象名 = new类名();
例如:Dog dog = new Dog();
Dog dog =创建一个Dog的引用,放在栈内存中
= new Dog();创建一个Dog的对象,放在堆内存中
3、对象和对象的引用
对象放在堆内存中,对象的引用放在栈内存中
三、
对象的使用方法
使用对象调用变量和函数:
对象.变量
对象.函数()
多对象的创建方法
Dog d1 = new Dog();
Dog d2 = new Dog();
匿名对象的创建和使用方法
可以不定义对象的引用名称。而直接调用这个对象的方法。这样的对象叫做匿名对象,如:
new Dog().jump();
new Dog().jump();
用完后就消失了,第二个匿名对象是新创建的
四、
函数的重载
判断标准: 两个或多个函数处于同一个类中;函数的函数名相同;函数的参数列表不同
class A{ void funA(){ System.out.print("没有参数的funA函数"+"\n"); } void funA(int a){ System.out.print("拥有一个整型参数的funA函数"); } }
两个funA函数就是重载
class TextA{ public static void main(String args[]){ A a = new A(); a.funA(); a.funA(10); } }
所以funA函数都能调用
构造函数的作用
new 后面调用的就是构造函数。
语法:
构造函数函数名必须与类名相同;
构造函数没有返回值的定义;
使用new来调用构造函数;
如果类中没有构造函数,编译器会自动加一个参数为空,方法体为空的构造函数。如果有的话,就不会加了。
class A{ A(){ //构造函数 } }
举例:
class Person{ Person(){ } Person(String n,int a){//自己定义的构造函数重载了 name = n; age = a; } String name; int age; }
class TextPerson{ public static void main (String args[]){ Person person1 = new Person("zhangsan",10); Person person2 = new Person("lisi",20); System.out.print("person1的名字是:"+person1.name+",年龄是:"+person1.age+"\n"); System.out.print("person2的名字是:"+person2.name+",年龄是:"+person2.age); } }