`
nigel521
  • 浏览: 11996 次
社区版块
存档分类
最新评论

黑马程序员——java关键字的使用

 
阅读更多

------- android培训java培训、期待与您交流! ----------

private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。私有只在本类中有效。将age私有化以后,类以外即使建立了对象也不能直接访问。但是人应该有年龄,就需要在Person类中提供对应访问age的方式。(注意:私有仅仅是封装的一种表现形式。)之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。对访问的数据进行操作。提高代码健壮性。

class Person

{

       private int age;//私有变量,不可以直接访问,只可以被自己的类内使用

       public void setAge(int a)

       {

              if(a>0 && a<130)

              {

                     age = a;

                     speak();

              }

              else

                     System.out.println("feifa age");

       }

 

       public int getAge()

       {

              return age;

       }

       private void speak()

       {

              System.out.println("age="+age);

       }

}

 

class PersonDemo

{

       public static void  main(String[] args)

       {

              Person p = new Person();

 

              //p.age = -20;

              p.setAge(-40);

              //p.speak();

       }

}

关键字this

this:就代表本类的对象,到底代表哪一个呢?

       this代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。

this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。

              但凡本类功能内部使用了了本类对象,都用this表示。

class Person

{

       private String name;

       private int age;

       Person(int age)

       {

              this.age = age;

       }

       Person(String name)

       {

              this.name = name;

       }

       Person(String name,int age)

       {

              this.name = name;

              this.age = age;

       }

 

       public void speak()

       {

              System.out.println("name="+this.name+"...age="+this.age);

              this.show();

       }

       public void show()

       {

              System.out.println(this.name);

       }

 

       /*

       需求:给人定义一个用于比较年龄是否相同的功能。也就是是否是同龄人。

       */

       public boolean compare(Person p)

       {

              return this.age==p.age;

       }

}

class PersonDemo3

{

       public static void main(String[] args)

       {

 

              Person p1 = new Person(20);

              Person p2 = new Person(25);

              boolean b = p1.compare(p2);

              System.out.println(b);

              //Person p = new Person("lisi");

              //Person p1 = new Person("zhangsan");

              //p.speak();

              //p1.speak();

              //p.speak();

       }

}

静态:static

用法:是一个修饰符,用于修饰成员(成员变量,成员函数).

当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,

还可以直接被类名调用。类名.静态成员。

 

 

static特点:

1,随着类的加载而加载。也就说:静态会随着类的消失而消失。说明它的生命周期最长。

2,优先于的对象存在明确一点:静态是先存在。对象是后存在的。

3,被所有对象所共享

4,可以直接被类名所调用。

实例变量和类变量的区别:

1,存放位置。类变量随着类的加载而存在于方法区中。实例变量随着对象的建立而存在于堆内存中。

2,生命周期:类变量生命周期最长,随着类的消失而消失。实例变量生命周期随着对象的消失而消失。

静态使用注意事项:

1,静态方法只能访问静态成员。非静态方法既可以访问静态也可以访问非静态。

2,静态方法中不可以定义thissuper关键字。因为静态优先于对象存在。所以静态方法中不可以出现this

3,主函数是静态的。

静态有利有弊

利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份。可以直接被类名调用。

弊端:生命周期过长。访问出现局限性。(静态虽好,只能访问静态。)

 

final关键字:

1final是一个修饰符,可以修饰类,方法,变量。

2final修饰的类不可以被继承。

3final修饰的方法不可以被覆盖。

4final修饰的变量是一个常量,只能赋值一次。

为什么要用final修饰变量。其实在程序如果一个数据是固定的,

那么直接使用这个数据就可以了,但是这样阅读性差,所以它该数据起个名称。

而且这个变量名称的值不能变化,所以加上final固定。

写法规范:常量所有字母都大写,多个单词,中间用_连接。

New的使用情况、

Person p = new Person("zhangsan",20);

该句话都做了什么事情?

1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。

2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。

3,在堆内存中开辟空间,分配内存地址。

4,在堆内存中建立对象的特有属性。并进行默认初始化。

5,对属性进行显示初始化。

6,对对象进行构造代码块初始化。

7,对对象进行对应的构造函数初始化。

8,将内存地址付给栈内存中的p变量。

class Person

{

       private Person(){}

       private String name = "hah";

       private int age;

       private static  String country = "cn";

       Person(String name,int age)

       {

              this.name = name;

              this.age = age;

       }

      

       {

              System.out.println(name+".."+age);

       }

       public void setName(String name)

       {

              this.name = name;

       }

 

       public void speak()

       {

              System.out.println(this.name+"..."+this.age);

       }

 

       public static void  showCountry()

       {

              System.out.println("country="+Person.country);

              Person.method();

       }

       public static void method()

       {

              System.out.println("method run");

       }

}

 

class  PersonDemo

{

       public static void main(String[] args)

       {

              Person p = new Person("zhangsan",20);

              p.setName("lisi");

              new Person();

       }

}

 

 
分享到:
评论

相关推荐

    黑马程序员——Android移动开发源码

    黑马程序员——Android移动开发源码

    黑马程序员入学Java知识——精华总结

    黑马程序员入学Java知识——精华总结

    Java 黑马程序员入学Java知识(精华总结)

    Java 黑马程序员入学Java知识(精华总结)

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员-Java语言进阶-源码、教程笔记.zip

    day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda...Java基础小节练习题答案

    黑马程序员_java8新特性详解笔记和源码

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。

    传智播客.黑马程序员《Java 基础入门》课后习题答案

    包工具多种与开发相关的工具,是提供给 Java 开发人员使用的。初学者学习和使用 Java 语言时, 首先必须下载和安装 JDK。JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载和安装 JRE 了。

    黑马程序员入学Java知识——精华总结.doc

    程序员编写代码,计算机执行这些代码,最终产生预期的结果。 2. **Java语言的特点**: - **简单性**:Java简化了C++的一些复杂特性,如指针,使得初学者更容易上手。 - **面向对象**:Java强调类和对象,支持封装...

    黑马程序员——赢在习惯

    NULL 博文链接:https://xianglachigen.iteye.com/blog/1564376

    黑马程序员Javase笔记

    "黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...

    黑马程序员JAVA WEB全笔记pdf

    本笔记基于黑马程序员的课程内容,全面覆盖了Java Web的基础知识,包括前端开发技术如HTML、CSS、JavaScript,以及后端服务器端的Java Servlet和JSP(Java Server Pages)。 一、前端基础 1. ...

    黑马程序员_Java基础辅导班教程课件[第01期]第15天

    《黑马程序员_Java基础辅导班教程课件[第01期]第15天》是针对初学者设计的一堂深入浅出的Java编程课程,旨在帮助学员巩固和深化Java基础知识。这堂课件涵盖的内容广泛且实用,对于想要在IT行业中开启Java开发旅程的...

    黑马程序员_Java基础辅导班教程课件[第01期]第14天

    【Java基础辅导班教程】- 黑马程序员 在编程世界中,Java是一种广泛应用的面向对象的编程语言,尤其在企业级应用开发中占据主导地位。"黑马程序员"作为知名的IT培训机构,提供了丰富的Java基础辅导课程,旨在帮助...

    教材源码_javaweb_黑马程序员Javaweb源码_

    黑马程序员是一家知名的IT教育机构,他们提供的Javaweb教材源码是为了帮助学员深入理解和实践Web开发技术。下面将详细介绍JavaWeb的基本概念、核心技术和黑马程序员源码在学习过程中的作用。 1. **JavaWeb基础** ...

    黑马程序员入学Java知识(精华总结)

    ### 黑马程序员入学Java知识(精华总结) #### 一、Java概述与基础知识 ##### 1、何为编程? 编程是指使用计算机语言来编写指令,这些指令被计算机执行以完成特定任务的过程。通过编程,我们可以控制计算机的行为...

    Java Web程序设计任务教程源码(黑马程序员)

    《Java Web程序设计任务教程》是一本专注于Java Web开发实践的书籍,由中国工信出版社出版,由传智播客旗下的高端教育品牌“黑马程序员”精心编著。这本书旨在帮助读者掌握Java Web开发的核心技术和实践方法,通过一...

Global site tag (gtag.js) - Google Analytics