面向对象、匿名对象、构造方法

1. 类和对象的关系 :类是对同一类事物(对象)的抽象,对象实际存在的该类的各种实体。

2. 面向对编程的核心:找合适的对象来做合适的事。

3. java中如何来找到对象:

(1).sun自己定义好的类,必须知道这个类。

(2).自定义类,通过自定义的类来出创建对象。

4. 类的格式 :

class 类名 {

//1.属性(成员变量) :描述对象的公共特性。。

//2.方法 :描述对象的公共行为。

}

如何通过类创建对象:

类名对象名 = new  类名();

5. 匿名对象 :没有名字对象

匿名对象的使用注意点:

(1).我们一般不会用匿名对象给属性赋值,无法获取属性值。

(2).创建出来每一次都是一个新的对象。

匿名对象的好处 : 书写简单。

匿名对象的使用场景 :

(1).如果一个对象需要调用一个方法一次的时候,就可以用匿名对象来调用。

(2).可以作为实际参数在方法中调用。

一. 构造方法。

1.在java中类似OC中的初始化方法 叫 构造方法。

2.OC初始化方法的特点 :

(1).可以在对象创建时初始化属性值。

(2).初始化方法只能被调用一次。

3.构造方法的作用 :给对应的对象进行初始化,对象创建时初始化属性值。

4.如何来创建构造方法:

格式 :

修饰符 类名(参数列表){}

5.构造方法使用注意点:

(1).方法名和类名保持一致

(2).构造方法没有返回值的。

(3).构造方法不是由我们手动调用的,而是在对象被创建时由java虚拟机调用的。

(4).如果一个类我们没有给他定义构造方法,jvm在编译的时候会给这个类默认添加一个无参的构造方法。

(5).如果你自己定义构造方法,jvm就不会在创建无参的构造方法。这个时候需要自己定义一个无参的构造方法。

二. 方法重载

1.在java中方法是可以重名的,我们把这种重名的方法叫方法的重载。

2.方法重载的使用注意事项:

(1).必须是方法名一样,才可以叫方法重载

(2).任何方法都可以实现方法的重载。

(3).保证参数列表的参数的顺序或者个数不一样

三. 构造代码块

1.构造代码块的作用 : 给对象统一初始化。

2.构造代码块的格式 :

{

}

3.注意 :构造代码块必须是写在成员的位置上的。

4.代码块 :

(1).构造代码块

(2).局部代码块  写在方法中 也是以大括号来表示。

(3).静态代码块  后面讲。

5.构造代码块的使用注意点 :对象被创建出来时就执行了。。。具体在什么时候执行的呢?

6.构造方法中是可以调用普通方法的

7.在同一个类中,方法的调用直接拿到方法名调用就可以了。

8.造代码块 :作用 :给对象统一初始化。

构造代码块使用注意点:

9.java中编译器编译一个java源文件的时候,会把成员变量的声明放在类的最前面。

10.成员变量的初始化都是在构造方法中执行的。

11.一旦经过java编译器编译后,那么构造代码块中的代码会移到构造函数中执行

12.成员变量的显示初始化和构造代码块,按照当前代码的顺序来执行的,谁在后面就显示谁。

四. this 关键字

1.this : 代表所属方法的调用对象。 和OC 中的self很象。

2.this关键字的作用 :如果成员变量和局部变量重名,在方法中时默认调用局部变量,通过this可以让方法调用成员变量。

3.this关键字的使用注意点 :

(1).存在域成员变量同名局部变量,方法内部会访问局部变量(java采用一个就近原则)

(2).在方法中不存在和成员变量同名的局部变量,java编译器在编译时会默认给变量前面加一个this.

4.构造方法中是可以调用普通(实例)方法。

5.构造方法中是否可以调用构造方法?可以的

1.面向对象的理解并举例?

面向对象的核心 : 找合适的对象做合适的事情。

面向对象编程的思想 : 尽可能的用计算机语言来描述现实生活中的事物。

面向对象 : 侧重与对象

2.类与对象之间的关系?

类是同一类事物的抽象,对象是这个类的具体实现。

3.如何对类进行分析,如果创建自定义类对象,并如何指挥对象做事情?

类的结构 :

class 类名 {

//1.公用属性

//2.构造方法。

//3.构造代码块

//4.公有方法 ,普通方法

}

new 类名();  // 匿名对象

匿名对象 :

1.一般不会用匿名对象给属性赋值,因为无法获取到。

2.创建出来每一次都是一个新的对象。

匿名对象作用:

1书写简单,如果一个对象中的方法只需要调用一次,这个时候就可以使用匿名对象

2.可以作为实际参数在方法中调用。

设置属性 :必须要有一个对象

对象.属性名 = 值;

访问(获取)属性 :

对象.属性名

访问方法:

对象.方法名();

4.对象的内存分布图?

对象的引用变量是存栈区中的 ,对象是存在堆区中的,成员变量也是随着对象存在对去中的。

5.成员变量和局部变量的区别?

位置:

1.成员变量实在,类中方法外。

2.局部变量存在方法中

作用域:

1. 成员变量当前类中都可以使用

2.局部变量只能在方法中使用

初始化:

1.成员变量默认由初始值

2.局部变量要想使用必须初始化。

生命周期:

1.随着对象的创建而创建,随着对象的消失而消失

2.出来方法的调用就消失。

7.构造函数和一般函数的区别?

结构上:

1.构造函数是没有返回值,方法名就是类名。

2.构造函数是由jvm来调用的,自己是无法手动调用,只会被调用一次。

作用:

1.初始化的时候给属性赋值。

2.描述对象的某种行为。

8.构造函数什么时候用?

创建对象的时候由jvm调用

9.构造代码块的作用?

可以给对象设置统一初始化的值。

位置:

在成员变量的位置上。成员变量写在哪里,我就可以写在哪里。

构造代码块的代码是在构造函数中执行的,并且先于构造函数中的代码执行

java在编译的时候会自动将成员变量的声明放在最前面。

10.this关键字的特点和使用以及应用场景?

this :当前调用方法的对象。

this的作用:

1.如果成员变量和局部变量同名可以通过this来调用成员变量。

2.可以通过this实现构造方法中调用构造方法。

格式:

this(参)--->具体参数是什么,由你的构造方法决定。

注意:必须是方法中的第一个语句。

时间: 2024-11-03 22:41:13

面向对象、匿名对象、构造方法的相关文章

面向对象(匿名对象的使用)

讲个小知识点,匿名对象,匿名就是没有名字,不起名字是对象的简写格式,有自己的应用场景,也有自己的弊端. new Car().num = 5;一执行完就垃圾了 new Car().color = "blue";一执行完就垃圾了 new Car().run();//匿名对象调用方法有意义,里面有内容,而调用属性 Car c = new Car(); c.run(); new Car().run(); Car c = new Car(); c.run(); c.num = 4; new Ca

java面向对象 - 匿名对象

一.匿名对象 1. 创建的对象,没有显示的赋给一个变量名,即为匿名对象. 2. 匿名对象只能调用一次 二.匿名对象使用 class Phone { private int price; public void sendMail() { System.out.println("send your mail~"); } } class PhoneMall { public void show(Phone phone) { phone.sendMail(); } } class PhoneT

JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块

JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买电脑来说吧,首先,你不懂电脑,你去电脑城买电脑,和大象装冰箱里一样,是什么步骤?咨询 砍价 ,谈妥了就那电脑走人,对吧,这就是面向过程的思想,而面向对象是:你有一个哥们,他懂电脑,什么都会,你只要带他去,就行,你这个哥们就是对象,在JAVA中,我们就是操作一个对象去完成各种各样的操作的,这就是面向对

面向对象基础——构造方法与匿名对象

什么是构造方法? 只要有一个对象实例化则就会调用构造方法. 在构造方法中要注意以下几点: -构造方法的名称必须与类名一致 -构造方法的声明处不能有任何返回值类型的声明 -不能在构造方法中使用return返回一个值. class Person{ public Person(){ // 声明构造方法 System.out.println("一个新的Person对象产生.") ; } }; public class ConsDemo01{ public static void main(St

JAVA笔记2__类/封闭性/构造方法/方法的重载/匿名对象

public class Main { public static void main(String[] args) { Chicken c1 = new Chicken(); Chicken c2 = null; c1.eat(); System.out.println(c1.age); c2 = c1; c2.eat(); } } class Chicken{ int color; char sex; int age; void eat(){ System.out.println("chik

Java——面向对象进阶(final关键字,static关键字,匿名对象,内部类,包的声明与访问,四种访问修饰符,代码块)

一.final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变.final是个修饰符,它可以用来修饰类,类的成员,以及局部变量. 1.修饰类 被final修饰的类不可以被继承,但是可以继承其他类. class Yy {} final cl

java匿名对象_面向对象

class Student{ public void tell(){ System.out.println("Hello jikexueyuan"); } public void main{ Student stu=new Student(); stu.tell(); //匿名对象可以直接new 但是只能使用一次 new Student.tell(); } }

面向对象_匿名对象

匿名对象使用方式一:当对对象的方法只调用一次时 可以使用匿名对象来完成 这样比较简化 如果对一个对象进行多个成员调用必须给这个对象取个名字 匿名对象使用方式二:可以将匿名对象作为实际参数进行传递 1 public class Object_Anonymity { 2 public static void main(String[] args) { 3 Car c=new Car(); 4 c.color="blue"; 5 c.run(); 6 7 //用匿名对象表示如下: 8 new

面向对象(匿名对象的概述与应用)

什么是匿名对象? 没有名字的对象 匿名对象应用场景 调用方法,仅仅只调用一次的时候 节省代码 注意:调用多次的时候,不适合.匿名对象调用完毕就是垃圾.可以被垃圾回收器回收 匿名对象可作为实际参数传递 匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象 匿名对象是否可以调用属性并赋值?有什么意义? 匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾 如果需要赋值还是用有名字对象 public class Test05 { public static void m