- 浏览: 105904 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
小小诺:
博主实例2中的代码博主难道没有测试吗?“工资总额不能超过6万元 ...
PLSQL -
emilyzhanghong:
我一般都用工具导入导出,语句记不住.
ORACLE 导入导出
一.面向对象的特点:
1,面向对象是一种思想,符合现在人们思考问题的思想。
2,面向对象思想的出现将复杂问题简单化。
3,将原来的面向过程的执行者角色转变现在的指挥者。
二. 面向对象与面向过程的区别:
面向对象:强调是具体事物。
面向过程:强调的是动作。
面向对象还基于面向过程。
一句话:在完成具体需求时,先要想到是否有具备实现需求功能的对象。
如果有,直接指挥这个对象,并调用这个对象的所需功能来完成需求。
如果没有,自己创建一个对象并定义好所需的功能,然后在指挥这个对象做事情。这样这个对象就具备了复用性。
比如:排序。自己不需要在定义了,只要找到java中具备排序功能的对象做事情即可。
境界的理解:一切皆对象。
三. 类与对象
类就是对现实生活中的事物进行的描述。
对象:就是该类事物实实在在存在的个体。
所以我们会先对现实生活中的事物进行类的描述。
然后在通过该类,创建计算机中具体的对象。
然后就可以操作这个计算机中的对象。来完成程序需求。
描述事物,其实就是在描述事物的属性和行为。
通过对类和对象关系的理解。
发现。类其实就是一组对象共性内容的抽象。
对象,就是通过该类new出来的具体的堆内存中的实体。
该实体中存储了具体的属性值。
注意:创建对象,需要用到一个关键字new。
new Car();//创建Car这个类的对象。这个对象也称为实体,也称为实例。
Car c = new Car();//创建一个对象,名称叫c。c是什么?c是指向了一个具体的对象的引用型变量。
//c是什么类型的变量呢?Car类型。Car是个类,所以c变量是一个类类型变量。
记住:类类型变量一定指向对象。
对象有了以后,就可以指挥对象做事情了,因为对象中具备了属性和行为。
怎么指挥呢?通过一个固定的调用格式:对象.对象成员。
c.color = "red";//给c这个车指定一个颜色。
c.num = 4;//给这个车指定一个轮胎数。
c.run();//指挥c这个车进行运行。
Car c = new Car ( );
c . color = “blue”;
c . num = 4;
c . run( ) ;
注意: 引用类型的变量,系统会默认为其进行初始化,但也可以自己手动为其进行显示初始化。
类与对象的细节。
在生产汽车时,每一个车在生产出来的时候是不具备颜色和轮胎数具体值。
需要对每一个车分别指定具体的数据。
希望的是,生产汽车时,让每一个车都具备同样的颜色 红色,同样的轮胎数,比如4个。
这时可以对类中的属性进行显示初始化。
局部变量和成员变量的区别?
局部变量:
1,定义在方法的参数,方法内的变量,语句中变量都是局部变量。
2,局部变量都存在栈内存中。
3,只要所在的函数被执行,该变量才存在于栈内存中,当该变量所属区域执行结束,该变量消失。
4,局部变量作用的范围是有限的。只在自己所在区域内有效,该区域指的所在的大括号。
成员变量:
1,定义在类中的变量,都是成员变量。
2,成员变量都存在于堆内存的对象中。
3,成员变量需要被对象调用。当对象给垃圾回收时,对象中的变量才消失。
4,成员在整个类中有效。其实准确的说,是在对象中有效。
只要是这个对象调用的方法,都可以访问该对象的属性也就是成员变量。
小事例:
public class CarDemo {
public static void main(String[] args) {
Car c = new Car();
c.num = 3;
c.run();
}
}
class Car{
int num = 4;//这里就用到了显示初始化。
String color = "white";
void run(){
System.out.println(num +"--------------------"+ color);
}
}
匿名对象:
就是没有名字的对象。是定义的对象的简化形式。
匿名对象的使用情况:
1,当对对象的方法进行一次调用的时候,可以简写成匿名对象形式。
匿名对象调用属性没有意义。
但是如果要对一个对象进行多次属性或者行为的调用。
必须对对象起个名字。
2,匿名对象可以作为实际参数进行传递.
new Car();//匿名对象。它直接就这样写。
如果它想要调用方法: new Car.run();
method(new Car());//匿名对象可以作为参数进行传递,也是简化形式。
public static void method(Car cc)
{
cc.color = "black";
cc.num = 3;
cc.run();
}//直接作为参数,传入到cc。
四. 基本数据类型与引用数据类型:
用一个小事例来表示吧:
Public class CarDemo {
Public static void main(String[] args) {
int num = 4;
method(num);
System.out.println(“num” + num);
}
Public static void method(int num){
int num = 3;
}
}//打印结果是4。
理由:当一个程序执行时,是从main方法开始的。
首先,main方法进栈,里面有一个局部变量num,初始化值是4。之后method方法进栈,同时把
参数num传了进去。在method方法中,也有一个局部变量num,它的值是3,于是这个3便覆盖掉了传入到method方法中的那个num。 method方法执行完,就开始了弹栈,method里面的局部变量num随着method的结束,也被释放了,于是method,以及它里面的num—(现在method里面的num的值是3)就消失了。method执行完,返回main方法。现在method已经没了,剩下的只有main里面的num了--(main里面的num还是4,它没有发生改变),所以打印出的num就等于main里的num的值4。
Public class DemoCar {
int num = 4;//显示初始化//成员变量
public static void mian(String[] args){
Car c = new Car();
c.num = 8;
method(c);//也可以使用匿名类来表示,method(new Car);
System.out.println(“num” + c.num);
}
Public static void method(Car c) {
c.num = 3;
}
}
首先,main方法进栈,它分配了一小块内存,给了一个叫作c的局部变量。同时在堆内存中,创建了一个实体,这个实体把自己的地址值复制给了栈内存中的c,于是这个c便指向了这个堆内存中的这个实体。由于堆内存中的变量会默认初始化(堆内存对象中的这个变量是成员变量),所以num刚开始的时候默认值是0,之后对这个num进行了显示初始化,现在num的值变成了4,c.num = 8,main里面的局部变量c又把它的值8赋给了num,于是8便覆盖了显示初始化的那个4。现在method方法进栈,传入了一个类类型的变量c进去。因为类类型变量一定指向对象,所以c就把它所指向的地址值,复制给了method的变量c。在method中,num等于3 。于是这个method就把3传给了堆内存的num。也就是说3覆盖了8。Method方法执行结束,里面的变量c消失,同时method这个方法的指向也消失。但是现在还有main里面的c指向堆内存中的实体,所以打印出的num就是3。
五.总结
今天所学的知识,对以后的编程很重要。我觉得我对于思想也有了些更好的认识,对于对象,我也可以举例子来描述。以前一直不懂执行顺序,今天通过老师的堆栈图,我也知道了先执行什么,再执行什么。面向对象很重要,我应该更好的去掌握。
问题清单:
1. 在需要传入参数的方法中,我不知道什么时候需要传入的是基本类型的参数,什么情况下需要传入的是类类型的参数????
是不是创建了对象,就得传入类类型的变量呢??如Public static void method(Car c)
传什么参数,得看你自己的需要。这个问题我跟你举个例子吧你好理解点:
比如说,你要结婚,你是个对象吧。相当于一个类,JAVA的是世界里面都是对象。结婚你得有个结婚对象吧
比如说一个很帅的男孩吧。他是个对象,是吧。然后你跟他结婚,要把他作为参数传给你吧。你们才能结婚吧。
这就是类类型的参数。
基本类型的参数,你要跟你男朋友比身高。他就可以传一个基本类型的参数给你。可以比较。不知道你懂了没,反正传什么参数,看你的需求。类类型的参数也可以叫做复合类型的变量,类里面对象可以有成员变量和成员方法,你都可以传过来。你要用什么,你自己可以拿到到。很灵活现在理解不了,以后面向对象思想成熟了,你就懂了。
2. 创建一个对象,假设: Person p = new Prson( ); 为什么这后面要有一对括号?这个括号里面可以写东西吗? 如果可以写,那可以写些什么??
括号是JAVA的语法规范,这个里面是可以写东西的,什么都不写说明是调用了父类无参的构造函数。要写东西的话,就是带参数的构造函数,重载不知道你懂不懂。方法重载你学了,你就懂了,里面可以写很多参数。当你要给这个对象赋值的时候,直接用它的构造方法。初始化对象。
师傅,昨天我们这网速太慢了,我没法发到邮箱去。只能今天发了。前天的我没总结,都是代码,而且我前天学的很不好。今天想看懂那些代码,之后我再自己敲出来。前天学的数组,我能听懂老师讲的,但是我自己写不出来。可能是缺少练习吧。
那道作业题,老师也是用的if else if 做的。 Switch不适合做。
这个问题了,智者见智,仁者见仁。我的意思,多练习,多思考,多发散。学起来就灵活了。
附加题:
我看你数组肯定没学好,给你加个题目:
你把冒泡排序,二分排序,快速排序。这三个排序,把原理和代码写出来,把他们的区别总结出来,下次发的时候总结给我。
总结还不错。继续努力把我交给你题目和老师交给你的题目完成好。
1,面向对象是一种思想,符合现在人们思考问题的思想。
2,面向对象思想的出现将复杂问题简单化。
3,将原来的面向过程的执行者角色转变现在的指挥者。
二. 面向对象与面向过程的区别:
面向对象:强调是具体事物。
面向过程:强调的是动作。
面向对象还基于面向过程。
一句话:在完成具体需求时,先要想到是否有具备实现需求功能的对象。
如果有,直接指挥这个对象,并调用这个对象的所需功能来完成需求。
如果没有,自己创建一个对象并定义好所需的功能,然后在指挥这个对象做事情。这样这个对象就具备了复用性。
比如:排序。自己不需要在定义了,只要找到java中具备排序功能的对象做事情即可。
境界的理解:一切皆对象。
三. 类与对象
类就是对现实生活中的事物进行的描述。
对象:就是该类事物实实在在存在的个体。
所以我们会先对现实生活中的事物进行类的描述。
然后在通过该类,创建计算机中具体的对象。
然后就可以操作这个计算机中的对象。来完成程序需求。
描述事物,其实就是在描述事物的属性和行为。
通过对类和对象关系的理解。
发现。类其实就是一组对象共性内容的抽象。
对象,就是通过该类new出来的具体的堆内存中的实体。
该实体中存储了具体的属性值。
注意:创建对象,需要用到一个关键字new。
new Car();//创建Car这个类的对象。这个对象也称为实体,也称为实例。
Car c = new Car();//创建一个对象,名称叫c。c是什么?c是指向了一个具体的对象的引用型变量。
//c是什么类型的变量呢?Car类型。Car是个类,所以c变量是一个类类型变量。
记住:类类型变量一定指向对象。
对象有了以后,就可以指挥对象做事情了,因为对象中具备了属性和行为。
怎么指挥呢?通过一个固定的调用格式:对象.对象成员。
c.color = "red";//给c这个车指定一个颜色。
c.num = 4;//给这个车指定一个轮胎数。
c.run();//指挥c这个车进行运行。
Car c = new Car ( );
c . color = “blue”;
c . num = 4;
c . run( ) ;
注意: 引用类型的变量,系统会默认为其进行初始化,但也可以自己手动为其进行显示初始化。
类与对象的细节。
在生产汽车时,每一个车在生产出来的时候是不具备颜色和轮胎数具体值。
需要对每一个车分别指定具体的数据。
希望的是,生产汽车时,让每一个车都具备同样的颜色 红色,同样的轮胎数,比如4个。
这时可以对类中的属性进行显示初始化。
局部变量和成员变量的区别?
局部变量:
1,定义在方法的参数,方法内的变量,语句中变量都是局部变量。
2,局部变量都存在栈内存中。
3,只要所在的函数被执行,该变量才存在于栈内存中,当该变量所属区域执行结束,该变量消失。
4,局部变量作用的范围是有限的。只在自己所在区域内有效,该区域指的所在的大括号。
成员变量:
1,定义在类中的变量,都是成员变量。
2,成员变量都存在于堆内存的对象中。
3,成员变量需要被对象调用。当对象给垃圾回收时,对象中的变量才消失。
4,成员在整个类中有效。其实准确的说,是在对象中有效。
只要是这个对象调用的方法,都可以访问该对象的属性也就是成员变量。
小事例:
public class CarDemo {
public static void main(String[] args) {
Car c = new Car();
c.num = 3;
c.run();
}
}
class Car{
int num = 4;//这里就用到了显示初始化。
String color = "white";
void run(){
System.out.println(num +"--------------------"+ color);
}
}
匿名对象:
就是没有名字的对象。是定义的对象的简化形式。
匿名对象的使用情况:
1,当对对象的方法进行一次调用的时候,可以简写成匿名对象形式。
匿名对象调用属性没有意义。
但是如果要对一个对象进行多次属性或者行为的调用。
必须对对象起个名字。
2,匿名对象可以作为实际参数进行传递.
new Car();//匿名对象。它直接就这样写。
如果它想要调用方法: new Car.run();
method(new Car());//匿名对象可以作为参数进行传递,也是简化形式。
public static void method(Car cc)
{
cc.color = "black";
cc.num = 3;
cc.run();
}//直接作为参数,传入到cc。
四. 基本数据类型与引用数据类型:
用一个小事例来表示吧:
Public class CarDemo {
Public static void main(String[] args) {
int num = 4;
method(num);
System.out.println(“num” + num);
}
Public static void method(int num){
int num = 3;
}
}//打印结果是4。
理由:当一个程序执行时,是从main方法开始的。
首先,main方法进栈,里面有一个局部变量num,初始化值是4。之后method方法进栈,同时把
参数num传了进去。在method方法中,也有一个局部变量num,它的值是3,于是这个3便覆盖掉了传入到method方法中的那个num。 method方法执行完,就开始了弹栈,method里面的局部变量num随着method的结束,也被释放了,于是method,以及它里面的num—(现在method里面的num的值是3)就消失了。method执行完,返回main方法。现在method已经没了,剩下的只有main里面的num了--(main里面的num还是4,它没有发生改变),所以打印出的num就等于main里的num的值4。
Public class DemoCar {
int num = 4;//显示初始化//成员变量
public static void mian(String[] args){
Car c = new Car();
c.num = 8;
method(c);//也可以使用匿名类来表示,method(new Car);
System.out.println(“num” + c.num);
}
Public static void method(Car c) {
c.num = 3;
}
}
首先,main方法进栈,它分配了一小块内存,给了一个叫作c的局部变量。同时在堆内存中,创建了一个实体,这个实体把自己的地址值复制给了栈内存中的c,于是这个c便指向了这个堆内存中的这个实体。由于堆内存中的变量会默认初始化(堆内存对象中的这个变量是成员变量),所以num刚开始的时候默认值是0,之后对这个num进行了显示初始化,现在num的值变成了4,c.num = 8,main里面的局部变量c又把它的值8赋给了num,于是8便覆盖了显示初始化的那个4。现在method方法进栈,传入了一个类类型的变量c进去。因为类类型变量一定指向对象,所以c就把它所指向的地址值,复制给了method的变量c。在method中,num等于3 。于是这个method就把3传给了堆内存的num。也就是说3覆盖了8。Method方法执行结束,里面的变量c消失,同时method这个方法的指向也消失。但是现在还有main里面的c指向堆内存中的实体,所以打印出的num就是3。
五.总结
今天所学的知识,对以后的编程很重要。我觉得我对于思想也有了些更好的认识,对于对象,我也可以举例子来描述。以前一直不懂执行顺序,今天通过老师的堆栈图,我也知道了先执行什么,再执行什么。面向对象很重要,我应该更好的去掌握。
问题清单:
1. 在需要传入参数的方法中,我不知道什么时候需要传入的是基本类型的参数,什么情况下需要传入的是类类型的参数????
是不是创建了对象,就得传入类类型的变量呢??如Public static void method(Car c)
传什么参数,得看你自己的需要。这个问题我跟你举个例子吧你好理解点:
比如说,你要结婚,你是个对象吧。相当于一个类,JAVA的是世界里面都是对象。结婚你得有个结婚对象吧
比如说一个很帅的男孩吧。他是个对象,是吧。然后你跟他结婚,要把他作为参数传给你吧。你们才能结婚吧。
这就是类类型的参数。
基本类型的参数,你要跟你男朋友比身高。他就可以传一个基本类型的参数给你。可以比较。不知道你懂了没,反正传什么参数,看你的需求。类类型的参数也可以叫做复合类型的变量,类里面对象可以有成员变量和成员方法,你都可以传过来。你要用什么,你自己可以拿到到。很灵活现在理解不了,以后面向对象思想成熟了,你就懂了。
2. 创建一个对象,假设: Person p = new Prson( ); 为什么这后面要有一对括号?这个括号里面可以写东西吗? 如果可以写,那可以写些什么??
括号是JAVA的语法规范,这个里面是可以写东西的,什么都不写说明是调用了父类无参的构造函数。要写东西的话,就是带参数的构造函数,重载不知道你懂不懂。方法重载你学了,你就懂了,里面可以写很多参数。当你要给这个对象赋值的时候,直接用它的构造方法。初始化对象。
师傅,昨天我们这网速太慢了,我没法发到邮箱去。只能今天发了。前天的我没总结,都是代码,而且我前天学的很不好。今天想看懂那些代码,之后我再自己敲出来。前天学的数组,我能听懂老师讲的,但是我自己写不出来。可能是缺少练习吧。
那道作业题,老师也是用的if else if 做的。 Switch不适合做。
这个问题了,智者见智,仁者见仁。我的意思,多练习,多思考,多发散。学起来就灵活了。
附加题:
我看你数组肯定没学好,给你加个题目:
你把冒泡排序,二分排序,快速排序。这三个排序,把原理和代码写出来,把他们的区别总结出来,下次发的时候总结给我。
总结还不错。继续努力把我交给你题目和老师交给你的题目完成好。
发表评论
-
db2 with函数使用
2012-08-15 10:59 1007WITH T1 AS( SELECT CGBT.SEGM ... -
db2 数据 对象备份
2012-07-28 17:03 778CREATE OR REPLACE FUNCTION RSPD ... -
Java_sokect 网络通信
2012-05-10 23:52 922客户端程序 package tcp; import j ... -
jdk下载以及Windows 安装
2011-12-29 20:13 1288http://www.oracle.com/technetwo ... -
JAVA基本功<7>_JDBC
2011-12-15 00:19 1083一、jdbc基本概念 jdbc : Java Database ... -
JAVA基本功<6>
2011-12-15 00:16 781一. 1. 循环结构 1. while 语句格式: ... -
JAVA基本功<5>
2011-12-15 00:15 1797一.常量与变量 1.概念:变量就是内存中的一个存储区域,它有 ... -
JAVA基本功<4>
2011-12-15 00:09 7531:人机交互的方式: 一 ... -
J2SE基本功<3>
2011-09-27 15:35 687public class Test1 { public ... -
日期处理
2011-09-12 23:50 814http://changguangjuan.blog.163. ... -
泛型总结
2011-09-08 09:58 752package daan; /* 使用泛型类的限制和 ... -
J2SE基本功<2>
2011-09-07 09:06 669http://blog.csdn.net/java334452 ... -
J2SE基本功<1>
2011-08-16 22:55 611一、Java是一门高级语言,具有跨平台性(一次编译到处运行)1 ... -
IO文件读取
2011-08-01 08:51 678斯蒂芬 -
String数组的二分排序
2011-07-31 18:04 1489public class Bsearch { /* ... -
JAVA编程练手题
2011-07-04 23:48 27831:写一个方法(函数):判断一个单链表中是是否有环? 2:串行 ... -
代理模式
2011-06-16 09:54 632使用动态代理不需要为特定对象与方法编写特定的代理对象,可以 ... -
策略模式
2011-06-09 00:11 717策略模式:高内聚 低耦合 可扩展(OCP) 在策略与最终用 ... -
正则表达式
2011-05-30 15:13 658import java.util.regex.Matcher; ... -
JSP 连接MySQL数据库
2011-05-29 20:23 763<%@ page contentType="t ...
相关推荐
其中的一道试题: <br>面向对象程序设计以_(1)_为基本的逻辑构件,用_(2)__来描述具有共同特征的一组对象,以_(3)_为共享机制,共享类中的方法和数据。<br><br>(1) A.模块 B.对象 C.结构 D.类<br>(2) A.类型 B....
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而备受青睐。在学习Java的过程中,掌握基础是非常关键的,因为坚实的根基能帮助开发者更好地理解和应用高级概念。"java 基本功训练题及参考...
《疯狂Java:突破程序员基本功的16课2》是一本深入浅出的编程学习书籍,专注于提升程序员的基础技能。作者李刚以其丰富的教学经验,精心设计了16个课程,旨在帮助读者全面掌握Java编程的核心知识,为日后的职业发展...
2. **面向对象编程**:Java是典型的面向对象语言,书中将深入探讨类、对象、封装、继承和多态等概念。读者将学会如何设计和实现类,理解类之间的关系,以及如何利用多态性提高代码的灵活性和可复用性。 3. **异常...
"突破程序员的java基本功代码"这个主题旨在帮助Java程序员深化对基础概念的理解,提升编程技能,从而在职业生涯中实现突破。下面将详细探讨Java编程的基本知识点。 一、Java语法基础 Java的语法结构严谨,它借鉴了...
根据提供的文件信息,我们可以推断出这是一本关于Java编程技术的书籍——《疯狂Java突破程序员基本功的16课》。尽管没有提供具体的章节内容,但基于书名及其描述,我们可以合理推测这本书的主要内容是帮助程序员提升...
《疯狂Java_突破程序员基本功的16课》是一本专为Java程序员设计的技能提升指南,旨在通过16个关键课程帮助读者巩固和提升Java编程基础。这本书深入浅出地探讨了Java语言的核心概念和技术,是提升Java编程能力的理想...
8. **对象和类**:面向对象编程是Java的核心。了解类的定义、对象的创建以及封装、继承和多态的概念是进阶学习的关键。 9. **输入输出**:Java提供System.in用于标准输入,System.out.println()用于输出。此外,...
书中不仅包含了Java语言的基础语法,如变量、数据类型、控制结构、函数等,还深入探讨了面向对象编程的精髓,包括类、对象、封装、继承和多态。此外,对于异常处理、集合框架、IO流、线程以及网络编程等Java开发中的...
面向对象编程是现代软件开发的核心...掌握它们的大小、范围以及如何正确使用和初始化,是每个Java开发者的基本功。同时,封装类的使用则有助于在面向对象的场景下灵活处理这些基本类型,增强了代码的可读性和可维护性。
开发者通过这个项目不仅锻炼了JavaSE的基本功,还深入理解了如何运用面向对象的思想和分层设计来解决实际问题。对于学习Java和想要提升软件设计能力的初学者来说,这是一个极具价值的学习资源。通过研究该项目的源...
1. **Java基础**:Java是一种面向对象的编程语言,它的基础包括语法、类与对象、封装、继承和多态等概念。学习Java基础是成为一名合格的Java程序员的首要任务。掌握变量、数据类型、控制结构、异常处理等基础知识,...
本书把容易被Java程序员所忽视的内容整理成书,介绍了Java的对象、数组的内存分配,介绍了常见集合的实现细节、内存回收的细节、表达式、流程控制、面向对象、异常的“陷阱”,常用的数据结构和算法的实现以及其他...
2. **面向对象编程**:深入探讨Java的面向对象特性,如封装、继承和多态,以及接口与抽象类的应用,帮助读者理解OOP设计原则。 3. **异常处理**:讲解Java异常处理机制,如何正确地捕获和处理异常,提高程序的健壮...
《疯狂JAVA 突破程序员基本功的16课》是一部专为初学者和进阶者设计的编程教程,旨在通过一系列深入浅出的课程,帮助读者巩固和提升JAVA编程的基础技能。这本书的配套源代码提供了丰富的实例,让读者能够在实践中...
在标题和描述中提到的“疯狂Java 突破程序员基本功的16课”,我们可以详细了解到几个关键的知识点。首先,课程的主要目标是帮助程序员强化其Java基础技能。这说明本课程将围绕Java编程语言的基础知识、关键概念、...
其次,面向对象编程是Java的精髓所在。课程会深入讲解类、对象、封装、继承、多态等核心概念。学习如何设计和实现类,理解对象的生命周期,以及如何通过继承和多态性来实现代码的复用和扩展,这些都是Java程序员必备...