匿名对象

   * 节省代码,并且很多情况下是针对某个方法只需要调用一次的情况下。

   * 匿名对象可以调用方法,也可以给成员变量赋值。 同时也可以作为方法的参数进行传递。

   

public class AnonDemo{    public static void main(String[] args){                System.out.println(new Student().name);        System.out.println(new Student().sex);        System.out.println(new Student().age);}}class Student{    String name="poppy";    String sex="女";    int age=20;}

封装

   * 概念: 隐藏对象的属性和细节,仅对外提供公共的方法进行访问。

   * private

    *  当类的成员变量使用private 修饰符修饰,那么就不可以直接访问到该成员变量.

    *  当使用private 修饰的成员变量或者成员方法,仅能在本类中使用

    *  private 对于main 方法的修饰,也是可以产生作用的.

public class PrivateDemo{    public static void main(String[] args){    Student student=new Student();     //student.name="弋痕夕";//如果在外部访问private则会出现name可以在Student中访问private    student.subject();}}class Student{    private String name;    private String sex;    private int age;    void subject(){            name="山鬼谣";//private在本类中没有限制        System.out.println(name+"选择的课是java");         }}

student.name(错误)

name="山鬼谣";

  

  * javaBean:

     它的所有成员变量都使用private 进行修饰,并且对外提供可访问的设置值和获取值的set,get      方法。不同的应用场景,可能命名不同,数据库的应用中称为POJO类.

public class JavaBeanDemo{    public static void main(String[] args){      Student student=new Student();      student.setName("山鬼谣");      student.setSex("男");      student.setAge(24);      student.subject();    }}class Student{    private String name;    private String sex;    private int age;    void setName(String nameParm){    name=nameParm;        }    //JavaBean类    String getName(){    return name;    }    void setSex(String sexParm){    sex=sexParm;        }    String getSex(){    return sex;    }    void setAge(int ageParm){    age=ageParm;        }    int getAge(){    return age;    }            void subject(){        System.out.println(name+":"+sex+","+age+"岁");                System.out.println("选择的课是java");    }}

优先原则: 对于一个类的成员方法来说,如果传递的形参的变量名称和类的成员变量名称相同,jvm在处        理的时候优先当做方法的形参来处理。

this 关键字

    代表了当前对象的引用(可以理解为,当前谁来调用,那么方法中的this 就代表谁)。

    对于成员变量可以区分出来的场景,this 可加也可以不加,实际效果相同。但是对于实现         javaBean/POJO 来说,我们建议都加上在setXXX,getXXX方法中.

   例:

    void setName(String name){

        this.name=name;

    

    }

    String getName(){

        return this.name;

    }

  * 初始化类成员变量的方式

     * 在定义成员变量的同时进行赋值.

     * 提供外界可访问到的方法,在方法中进行赋值.

     * 通过构造方法进行赋值.

public class VariableDemo{    public static void main(String[] args){    Student student=new Student();       student.write();    Student student1=new Student("山鬼谣");//构造方法赋值    student1.write();    Student student2=new Student();    student2.setName("天净沙");//在方法中进行赋值    student2.write();}}class Student{   String name="弋痕夕";//定义成员变量时同时赋值     Student(){	     }   Student(String name){    this.name=name;   }   void setName(String name){    this.name=name;   }   String getName(){    return this.name;   }   void write(){   System.out.println("姓名:"+name);     } }

static

   * 随着类加载而加载(静态方法区中来保存静态成员变量)

   * 优先于对象创建

   * 被类的所有对象共享(静态的成员变量会保存在该class的静态方法区中,所以每个对象看到的      都是同一份.)

   * 可以通过类名来访问也可以通过对象名来访问(一般通过类名来访问)。

   * 静态的成员,一般称为类相关的成员。

   * static 修饰符既可以修饰成员变量,也可以修饰成员方法。 且修饰之后,就可以通过类名来直      接访问到。

   * this变量在静态方法中不可以使用

   * 静态方法中只能访问静态成员变量和静态方法;非静态方法既可以访问静态成员和方法也可以访      问非静态成员和方法。

  

public class StaticDemo{    public static void main(String[] args){     Person person=new Person();     person.setName("山鬼谣");     Person.skill();//通过类名来访问	 }}class Person{    static String name;    static String sex;    void setName(String nameParm){        name=nameParm;         }    String getName(){        return name;    }    	static void skill(){	    System.out.println(name+"的技能是:“绝气逆空”");		}	}

  非静态虽然可以访问静态的方法,但是不建议这样做。

   * main方法.

     修饰符 返回类型  方法名 (参数列表){

       }

     public static void main(String[] args){

        }

    * public: 最大的一个访问权限,使得jvm能够成功调用

    * static: 类相关的,与对象无关. A.main([]);

     public class A{

          main(){

         System.("");

       }

     }