一.匿名对象

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

2.匿名对象的使用注意点:

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

2.匿名对象永远都不可能事一个对象。

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

4.匿名对象的使用场景 :

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

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

二.构造方法

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

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

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

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

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

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

格式 :

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

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

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

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

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

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

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

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

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

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

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

可以的

9.构造方法中如何调用的?

this(参数);

10.使用注意点 :

1.this调用构造方法,必须是构造方法中的第一个语句。

2.不要相互调用构造方法。

class Person
{
//公有的属性
String name;
int age; //创建一个构造方法
public Person(String n,int a){ //给属性赋值
name = n;
age = a;
} public Person (){ } //行为 ,普通方法
public void work(){ System.out.println(name +"正在工作");
}
} class Demo1
{
public static void main(String[] args)
{ //创建一个Person对象,同时给属性赋值
Person p = new Person("老王",38); //调用工作的方法
p.work();
//
Person p1 = new Person();
p1.name = "老宋";
p1.work(); }
}
//老王正在工作
//老宋正在工作

  

二.重载

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

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

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

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

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

class Baby
{ //公有的属性
String name;
String sex;
int age; {
//调用小孩哭的方法
cry();
} //创键构造方法
Baby(String n,String s,int a){ // 局部变量 :必须初始化 //给属性赋值
name = n;
sex = s;
age = a; } //参数的个数不一样。
Baby(String n,String s){ name = n;
sex = s; } //和第一个对比参数的顺序不一样
Baby(String s,int a,String n){
name = n;
sex = s;
age = a; } //不带参数的构造方法
Baby(){ } //公有的行为
public void cry(){ System.out.println(name+"在哭1");
} public void cry(String name){ System.out.println(name+"在哭2");
} } class Demo1
{
public static void main(String[] args)
{ //创建一个baby类
Baby b = new Baby("狗蛋","男",1);
//小孩饿了
b.cry(); //狗蛋又有一个小弟弟
Baby b1 = new Baby("二狗子","男");
//哇哇地哭
b1.cry();
}
}
//null在哭1
//狗蛋在哭1
//null在哭1
//二狗子在哭1

  

三.构造代码块

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

2.构造代码块的格式 :

{

}

3.注意 :

构造代码块必须是写在成员的位置上的

4.代码块 :

1.构造代码块

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

3.静态代码块  后面讲。

5.构造代码块的使用注意点 :

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

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

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

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

class Person
{ //公有的属性
String name;
String sex;
int age; // 问题 : 构造代码块在什么时候被执行。 {
System.out.println("我是代码块");
} //公有的方法
public void work(){ System.out.println(name+"在工作");
}
} class Demo1
{
public static void main(String[] args)
{ Person p = new Person(); Person p1 = new Person(); Person p2 = new Person();
}
}
//我是代码块
//我是代码块
//我是代码块

  

四.this 关键字

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

2.this关键字的作用 :

1.如果成员变量和局部变量重名,在方法中时默认调用局部变量,通过this可以让方法调用成员变量。

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

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

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

class Person
{
//公共属性
String name; //构造代码块 //创建一个构造方法
public Person (String name , int age){ //就近原则 this.name = name; // 两个name都是指的时局部变量的name.
this.age =age; // 两个age都是指的时局部变量的age } int age = 20; {
age = 18;
} public void work(){ //创建一个局部变量 变量名也叫name
//String name = "老宋"; System.out.println(name+"在工作");//null
} } class Demo1
{
public static void main(String[] args)
{ Person p = new Person("老王",30); p.work(); System.out.println(p.age); //打印老王的年龄 //老曹 :20 老肖:18 老陈:18 老王 :20 }
}
//老王在工作
//30

  

匿名对象 构造方法 重载 构造代码块 this 关键字的更多相关文章

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

    JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买 ...

  2. About 静态代码块,普通代码块,同步代码块,构造代码块和构造函数的纳闷

    构造函数用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种.特点:1:该函数的名称和所在类的名称相同.2:不需要定义返回值类型.3:该函数没有具体的返回值.记住:所有对象创 ...

  3. Java中静态代码块、构造代码块、构造函数、普通代码块

    在Java中,静态代码块.构造代码块.构造函数.普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序. 1.静态代码块 ①.格式 在java类中(方法中不能存在静态代 ...

  4. 黑马程序员——JAVA基础之构造函数,构造代码块

    ------- android培训.java培训.期待与您交流! ---------- 构造函数特点: 1.  函数名与类名相同 2.  不用定义返回值类型 3.  不可以写return语句 构造函数 ...

  5. java中父类子类静态代码块、构造代码块执行顺序

    父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...

  6. Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员、局部),匿名对象的调用,构造代码块(5)

    Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员.局部),匿名对象的帝爱用,构造代码块(5)

  7. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  8. java中-静态代码块、构造代码块、构造方法的联系

    例如该题: 1 class Fu{ static { System.out.println("这是父类静态代码块"); } { System.out.println("这 ...

  9. java学习(一)静态代码块 构造代码块 构造方法的执行顺序及注意问题

    今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载 当时做了这么一个小案例(想必 ...

随机推荐

  1. LinuxMysql命令操作数据库

    键入命令mysql -uroot -p密码查看所有表:mysql> show databases;进入表use multidomain_db;删除表:DROP table colour 执行sq ...

  2. Git使用教程

    配置Git 首先在本地创建ssh key: $ ssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@your ...

  3. Html 5 Web Storage

    HTML5 中使用Web Storage 技术进行本地存储,能够在Web 客户端进行数据存储.WebStorage 曾今属于HTML5的规范,目前已经被独立出来形成单独的规范体系.简单来说使用Web本 ...

  4. input表单手机号、身份证号验证

    <form action="" method="post" onsubmit="return checkForm(this)"> ...

  5. 请慎用java的File#renameTo(File)方法

    转载地址:http://xiaoych.iteye.com/blog/149328 以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名.移 ...

  6. JPA快速入门(自用)

    该案例为JPA的实体映射案例,将该项目解压导入到myeclipse中即可使用,然后直接使用hibernate即可! 文件地址:files.cnblogs.com/mrwangblog/JPA-Hibe ...

  7. 使用VBScript实现设置系统环境变量的小程序

    本人有点桌面洁癖,桌面上只放很少的东西,很多软件都用快捷键调出.最近频繁用到一个软件,我又不想放个快捷方式在桌面,也不想附到开始菜单,于是乎想将其所在目录附加到系统环境变量Path上,以后直接在运行中 ...

  8. 使用Fiddler关于“由于目标计算机积极拒绝,无法连接。”的解决方案

    今天使用Fiddler的时候遇到下面这个问题:在地址栏想打开个一般处理程序,出现连接本机失败的提示,如下图: 而这在我没打开Fiddler的时候是显示正常的. 查看Fiddler,在嗅探 -> ...

  9. ******IT公司面试题汇总+优秀技术博客汇总

    滴滴面试题:滴滴打车数据库如何拆分 前端时间去滴滴面试,有一道题目是这样的,滴滴每天有100万的订单,如果让你去设计数据库,你会怎么去设计? 当时我的想法是根据用户id的最后一位对某个特殊的值取%操作 ...

  10. Python-类的属性

    类的属性,可以称为成员变量 类的方法,可以称为成员函数   对象的创建 - 创建对象的过程称之为实例化:当一个对象被创建后,包含三个方面的特性:对象句柄.属性和方法. - 句柄用于区分不同的对象(实例 ...