黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
2012-07-31 00:07
841 查看
-------
android培训、java培训、期待与您交流! ----------
一、面向对象(类和对象的关系)
面向对象的三个特征:封装,继承,多态。
以后开发:找对象,建立对象,使用对象,维护对象的关系。
类和对象的关系:类是对象的抽象,对象是类的具体实现。
现实生活中的对象:张三,李四。
描述:提取对象中的共性内容。对具体的抽象。
描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。
映射到java中,描述就是class定义的类。
集体对象就是对应java在堆内存中用new建立的实体。
类就是对现实生活中事物的描述。
对象就是这类事物,实实在在存在的个体。
二、面向对象(成员变量和局部变量)
作用范围:
成员变量作用于整个类中,局部变量作用于函数中或者语句中。
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:在栈内存中。
三、面向对象(匿名对象)
例如:
new Car().num=5;
new Car.run();
这样并没有指明对象的名称(也就是引用)。
匿名对象使用方式1:当对象的方法值调用一次,可以用匿名对象,这样比较简化。
如果对一个对象进行多个成员调用,必须给这个对象起名字。
匿名对象使用方式2:可以将匿名对象作为实际参数进行传递。
四、面向对象(封装)
概念:是隐藏对象的属性和方法的实现细节。
五、面向对象(构造函数)
作用:用来初始化对象的成员变量。
注意:
1. 与类名同名
2. 没有返回值类型
3. 不可写return语句
提醒:同名构造函数通过形参的类型和形参的数目进行区分。
当一个类中没有定义构造函数时,系统会默认向类加入一个空参数的构造函数。
构造函数是在对象已建立就运行,给对象初始化。而类里面的一般函数是对象经过调用执行的。
一个对象建立构造函数只执行一次。而里面的一般函数可被该对象调用多次。
六、面向对象(构造代码块)
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象分别初始化。
七、面向对象(this关键字)
this就是本类的对象,用来区分同名变量的。
八、面向对象(this关键字的应用)
九、面向对象(this关键字在构造函数间调用)
this语句用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。因为初始化要先执行。
-------
android培训、java培训、期待与您交流! ---------- 详细请查看:http://edu.csdn.net/heima/
android培训、java培训、期待与您交流! ----------
一、面向对象(类和对象的关系)
面向对象的三个特征:封装,继承,多态。
以后开发:找对象,建立对象,使用对象,维护对象的关系。
类和对象的关系:类是对象的抽象,对象是类的具体实现。
现实生活中的对象:张三,李四。
描述:提取对象中的共性内容。对具体的抽象。
描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。
映射到java中,描述就是class定义的类。
集体对象就是对应java在堆内存中用new建立的实体。
类就是对现实生活中事物的描述。
对象就是这类事物,实实在在存在的个体。
/* 定义一个简单的汽车类 */ class Car { String color="蓝色";//定义颜色 String name="奔驰";//定义品牌 int num=4;//定义轮胎数 void run() { System.out.println("品牌:"+name+"\n颜色:"+color+"\n轮胎数:"+num); } } class CarDemo { public static void main(String[] args) { Car c=new Car();//在堆中产生一个实体(汽车)。在栈中产生Car类型c变量并指向实体。 c.color="红色";//更改对象c的color属性的值为"红色"。 c.run();//调用对象c的run()方法。 } }
二、面向对象(成员变量和局部变量)
作用范围:
成员变量作用于整个类中,局部变量作用于函数中或者语句中。
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:在栈内存中。
三、面向对象(匿名对象)
例如:
new Car().num=5;
new Car.run();
这样并没有指明对象的名称(也就是引用)。
匿名对象使用方式1:当对象的方法值调用一次,可以用匿名对象,这样比较简化。
如果对一个对象进行多个成员调用,必须给这个对象起名字。
匿名对象使用方式2:可以将匿名对象作为实际参数进行传递。
四、面向对象(封装)
概念:是隐藏对象的属性和方法的实现细节。
/* Private访问修饰符 */ class Person { private String name="杨成"; private int age=18; public void setAge(int a)//设置age函数 { if(a>0&&a<300) { age=a; } else System.out.println("修改年龄错误!"); } public int getAge()//获得age { return age; } void display()//没写修饰符,表示默认。可以被同包不同类访问。 { System.out.println("name:"+name+"\nage:"+getAge()); } } class PersonDemo { public static void main(String[] args) { Person p=new Person(); //p.age=30; //不能在Person类外访问其私有成员属性 p.setAge(21); p.display(); } }
五、面向对象(构造函数)
作用:用来初始化对象的成员变量。
注意:
1. 与类名同名
2. 没有返回值类型
3. 不可写return语句
提醒:同名构造函数通过形参的类型和形参的数目进行区分。
当一个类中没有定义构造函数时,系统会默认向类加入一个空参数的构造函数。
构造函数是在对象已建立就运行,给对象初始化。而类里面的一般函数是对象经过调用执行的。
一个对象建立构造函数只执行一次。而里面的一般函数可被该对象调用多次。
/* 构造函数 */ class Person { private String name="杨成"; private int age=18; Person()//不带参数构造函数 { System.out.println("不带参数构造函数\n"+"name:"+name+"\nage:"+age); } Person(String n)// 带一个参数构造函数 { name=n; System.out.println("带一个参数构造函数\n"+"name:"+name+"\nage:"+age); } Person(String n,int a)// 带两个参数构造函数 { name=n; age=a; System.out.println("带两个参数构造函数\n"+"name:"+name+"\nage:"+age); } void display() { System.out.println("name:"+name+"\nage:"+age); } } class PersonDemo { public static void main(String[] args) { Person p1=new Person();//采用不带参数构造函数初始化 Person p2=new Person("张三");//采用带一个参数构造函数初始化 Person p3=new Person("张三",22);//采用带两个参数构造函数初始化 //p.age=30; //不能在Person类外访问其私有成员属性 //System.out.println();//换行 p1.display(); p2.display(); p3.display(); } }
六、面向对象(构造代码块)
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象分别初始化。
/* 构造代码块 */ class Person { private String name="杨成"; private int age=18; { System.out.println("构造代码块。"); } Person() { System.out.println("不带参数构造函数\n"+"name:"+name+"\nage:"+age); } Person(String n) { name=n; System.out.println("带一个参数构造函数\n"+"name:"+name+"\nage:"+age); } Person(String n,int a) { name=n; age=a; System.out.println("带两个参数构造函数\n"+"name:"+name+"\nage:"+age); } void display() { System.out.println("name:"+name+"\nage:"+age); } } class PersonDemo { public static void main(String[] args) { Person p1=new Person();//采用不带参数构造函数初始化 Person p2=new Person("张三");//采用带一个参数构造函数初始化 Person p3=new Person("李四",23);//采用带两个参数构造函数初始化 System.out.println();//换行 p1.display(); p2.display(); p3.display(); } }
七、面向对象(this关键字)
this就是本类的对象,用来区分同名变量的。
/* this关键字 */ class Person { private String name="杨成"; private int age=18; Person(String name) { this.name=name;//出现同名name,用this指定本类对象。 System.out.println("带一个参数构造函数\n"+"name:"+this.name+"\nage:"+this.age); } Person(String name,int age) { this.name=name;//出现同名name,用this指定本类对象 this.age=age;//出现同名age,用this指定本类对象 System.out.println("带两个参数构造函数\n"+"name:"+this.name+"\nage:"+this.age); } void display() { System.out.println("name:"+name+"\nage:"+age); } } class PersonDemo { public static void main(String[] args) { Person p1=new Person("张三");//采用带一个参数构造函数初始化 Person p2=new Person("李四",22);//采用带两个参数构造函数初始化 System.out.println();//换行 p1.display(); p2.display(); } }
八、面向对象(this关键字的应用)
/* 给人定义一个用于比较年龄是否相同的功能。 */ public boolean compare(Person p)//判断功能代码 { return this.age==p.age;/*先逻辑判断,在返回逻辑值。 this.age表示本类的age, p.age表示传递其它对象的age. */ }
九、面向对象(this关键字在构造函数间调用)
this语句用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。因为初始化要先执行。
/* this关键字在构造函数间的调用 */ class Person { private String name; private int age; Person() { } Person(String name) { this(); this.name=name; } Person(String name,int age) { this(name); this.age=age; } public void display() { System.out.println("name:"+this.name+"\nage:"+this.age); } } class PersonDemo { public static void main(String[] args) { Person p=new Person("李四",30); p.display(); } }
-------
android培训、java培训、期待与您交流! ---------- 详细请查看:http://edu.csdn.net/heima/
相关文章推荐
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- 黑马程序员--面向对象(一)封装、成员变量与局部变量、匿名对象、构造函数、this关键字
- Java基础--面向对象(封装、构造函数、构造代码块、this关键字)
- 黑马程序员:Java之介绍对象、封装、构造函数、构造代码块及this关键字
- Java重修之路(六)面向对象初识,类与对象,成员变量,局部变量,封装,构造函数,构造代码块,this关键字
- 黑马程序员 JAVA初级-面向对象 匿名对象、封装、构造函数、构造代码块、this
- 黑马程序员_Java基础_面向对象,封装,继承,单例设计模式,构造函数,构造代码块
- 黑马程序员 Java基础<一>---> 面向对象与类之概述(匿名对象、封装、构造函数、this、静态等)
- Java 笔记 及 面向对象 成员变量与局部变量的区别 面向对象3大特征:这里只写了封装,构造函数 .this关键字
- 重踏学习Java路上_Day07(成员与局部变量,形参,匿名对象,封装,private,this,构造与成员方法,static)
- Java语言基础{Java_se(05)}-面向对象-封装-构造方法-成员变量,局部变量
- Java基础05:面向对象;类与对象;匿名对象;成员变量;局部变量;封装;构造函数
- 黑马程序员——Java面向对象(一)—面向对象的概述、类与对象的关系、封装
- 成员变量和局部变量的区别、方法的形参为类的情况及匿名对象、封装(private关键字)、this关键字、构造方法、static关键字
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- 面向对象_成员变量_ 局部变量_匿名对象_封装_构造函数_构造代码块
- Java笔记2 面向对象<1>面向对象概述、构造代码块、匿名对象、this关键字等
- Java基础:面向对象(1)--对象的概念、成员变量与局部变量、匿名对象、类的封装