Java中面向对象的详解

1:成员变量和局部变量的区别(理解)	(1)在类中的位置不同		成员变量:类中方法外		局部变量:方法定义中或者方法声明上	(2)在内存中的位置不同		成员变量:在堆中		局部变量:在栈中	(3)生命周期不同		成员变量:随着对象的创建而存在,随着对象的消失而消失		局部变量:随着方法的调用而存在,随着方法的调用完毕而消失	(4)初始化值不同		成员变量:有默认值		局部变量:没有默认值,必须定义,赋值,然后才能使用

2:类作为形式参数的问题?(理解)	(1)如果你看到一个方法需要的参数是一个类名,就应该知道这里实际需要的是一个具体的对象。
3:匿名对象(理解)	(1)没有名字的对象	(2)应用场景		A:调用方法,仅仅只调用一次的时候。		b:可以作为实际参数传递。

4:封装(理解)	(1)隐藏实现细节,提供公共的访问方式	(2)好处:		A:隐藏实现细节,提供公共的访问方式		B:提高代码的复用性		C:提高代码的安全性	(3)设计原则		把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式	(4)private是封装的一种体现。		封装:类,方法,private修饰成员变量
5:private关键字(掌握)	(1)私有的意义,可以修饰成员变量和成员方法	(2)特点:		被private修饰的后的成员只能在本类中被访问	(3)private的应用:		以后再写一个类的时候:			把所有的成员变量给private了			提供对应的getXxx()/setXxx()方法
6:this关键字(掌握)	(1)代表当前类的引用对象		记住:哪个对象调用方法,该方法内部的this就代表那个对象	(2)this的应用场景:		A:解决了局部变量隐藏成员变量的问题		B:其实this还有其他的应用,明天讲解。
7:构造方法(掌握)	(1)作用:用于对对象的数据进行初始化	(2)格式:		A:方法名和类名相同		B:没有返回值类型,连void都不能有		C:没有返回值

		思考题:构造方法中可不可以有return语句呢?		可以。而是我们写成这个样子就OK了:return;		其实,在任何的void类型的方法的最后你都可以写上:return;	(3)构造方法的注意事项		A:如果我们没写构造方法,系统将提供一个默认的无参构造方法		B:如果我们给出了构造方法,系统将不再提供默认构造方法			如果这个时候,我们要使用无参构造方法,就必须自己给出。			推荐:永远手动自己给出无参构造方法。	(4)给成员变量赋值的方式		A:setXxx()		B:带参构造方法	(5)标准案例		class Student {			private String name;			private int age;

			public Student(){}

			public Student(String name,int age) {				this.name = name;				this.age = age;			}

			public String getName() {				return name;			}

			public void setName(String name) {				this.name = name;			}

			public int getAge() {				return age;			}

			public void setAge(int age) {				this.age = age;			}		}

		测试:		class StudentDemo {			public static void main(String[] args) {				//方式1				Student s1 = new Student();				s1.setName("林青霞");				s1.setAge(27);				System.out.println(s1.getName()+"---"+s1.getAge());

				//方式2				Student s2 = new Student("刘意",30);				System.out.println(s2.getName()+"---"+s2.getAge());			}		}		
8:代码:Student s = new Student();做了哪些事情?(理解)	(1)把Student.class文件加载到内存	(2)在栈内存为s开辟空间	(3)在堆内存为学生对象申请空间	(4)给学生的成员变量进行默认初始化。null,0	(5)给学生的成员变量进行显示初始化。林青霞,27	(6)通过构造方法给成员变量进行初始化。刘意,30	(7)对象构造完毕,把地址赋值给s变量

9:面向对象的练习题(掌握)	(1)标准的手机类的定义和测试	(2)Demo类有求和方法,Test类进行测试。		什么时候定义成员变量?		当该变量是用来描述一个类的时候。	(3)长方形案例	(4)员工案例	(5)MyMath案例(自己提供加减乘除并测试)

10:static关键字(理解)	(1)静态的意思。可以修饰成员变量和成员方法。	(2)静态的特点:		A:随着类的加载而加载		B:优先与对象存在		C:被类的所有对象共享			这其实也是我们判断该不该使用静态的依据。			举例:饮水机和水杯的问题思考		D:可以通过类名调用			既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。	(3)静态的内存图		静态的内容在方法区的静态区	(4)静态的注意事项;		A:在静态方法中没有this对象		B:静态只能访问静态(代码测试过)	(5)静态变量和成员变量的区别		A:所属不同			静态变量:属于类,类变量			成员变量:属于对象,对象变量,实例变量		B:内存位置不同			静态变量:方法区的静态区			成员变量:堆内存		C:生命周期不同			静态变量:静态变量是随着类的加载而加载,随着类的消失而消失			成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失		D:调用不同			静态变量:可以通过对象名调用,也可以通过类名调用			成员变量:只能通过对象名调用	(6)main方法是静态的		public:权限最大		static:不用创建对象调用		void:返回值给jvm没有意义		main:就是一个常见的名称。		String[] args:可以接收数据,提供程序的灵活性			格式:java MainDemo hello world java				  java MainDemo 10 20 30
时间: 2024-11-08 23:05:37

Java中面向对象的详解的相关文章

java中static作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类

Java中的HashTable详解

Hashtables提供了一个很有用的方法可以使应用程序的性能达到最佳. Hashtables(哈 希表)在计算机领域中已不 是一个新概念了.它们是用来加快计算机的处理速度的,用当今的标准来处理,速度非常慢,而它们可以让你在查询许多数据条目时,很快地找到一个特殊的条目. 尽管现代的机器速度已快了几千倍,但是为了得到应用程序的最佳性能,hashtables仍然是个很有用的方法. 设想一下,你有一个 包含约一千条记录的数据文件??比如一个小企业的客户记录还有一个程序,它把记录读到内存中进行处理.每个

Java中反射机制详解

序言 在学习java基础时,由于学的不扎实,讲的实用性不强,就觉得没用,很多重要的知识就那样一笔带过了,像这个马上要讲的反射机制一样,当时学的时候就忽略了,到后来学习的知识中,很多东西动不动就用反射,所以回过头来把这个给重新补一下,自己欠下的债,迟早是要还的. ---WH 一.什么是反射? 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的

Java中的final详解以及用途实战

浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3736238.html 一

Java 中的泛型详解-Java编程思想

Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的对象的类型 class Holder1 { private Circle a; public Holder1(Circle a) { this.a = a; } Circle get() { return a; } } 上面的类的可重用性不怎么样,无法持有其他类型的任何对象,下面通过持有Object

Java中Class对象详解

java中把生成Class对象和实例对象弄混了,更何况生成Class对象和生成 instance都有多种方式.所以只有弄清其中的原理,才可以深入理解.首先要生成Class对象,然后再生成Instance.那Class对象的生 成方式有哪些呢,以及其中是如何秘密生成的呢? Class对象的生成方式如下: 1.Class.forName("类名字符串")  (注意:类名字符串必须是全称,包名+类名) 2.类名.class 3.实例对象.getClass() 通过一段小程序,来观察一下Cla

java中的static详解

如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象.static 成员的最常见的例子是main( ) .因为在程序开始执行时必须调用main() ,所以它被声明为static. 声明为static的变量实质上就是全局变量.当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量,例如:声明一个static的变量count作为new一个类实例的计数.声明为static的方法有以下几条限制: 1.它们仅能调用其他的s

Java中String类型详解

这篇博客是我一直想总结的,这两天一直比较忙,先上传下照片吧,过后有时间再弄成正常的. 本文主要是对Java中String类型的总结,包括其在JVM中是怎么存储的...

java中的异常详解

java中的exception关系图如图下图所示: Throwable是Exception(异常)和Error(错误)的超类!! 两者的区别: Exception表示程序需要捕捉和处理的的异常; Error表示系统级别的错误和程序无需处理的. 我们日常程序中所遇到的是Exception,Exception分为两种: 第一种是JDK标准自带的异常,当程序违反了jdk的语法规则或者非法使用内存等,程序就会抛出异常,常见的jdk异常有: java.lang.nullpointerexception,