V
2
R
A
 
F
R
E
E

类和对象的学习心得

首页 / 新闻资讯 / 正文
 
 
1,
类和对象的定义:
类就是一类对象的统称。对象就是这一类具体化的一个实例。
2,类和类的实例化
用类型创建对象的过程,称为类的实例化
1.
类只是
一个
模型
一样的东西,限定了类有哪些成员
.
2.
一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量。
创建:
class Person{     //成员属性     public String name ;          //访问修饰限定符:public   private   protected  什么都不写     public int age  ;             //name和age是实例成员变量     public static int count;       //静态成员变量,在方法区,不管new多少个,只有一个count     /*public boolean flg;     public char ch;*/     //成员方法     public void eat(){         System.out.println("吃饭");     } }

实例化:

public static void main(String[]args){         //Person是类型  person是局部变量(属于引用类型)          //person 1在栈上   new Person在堆上          Person person1 = new Person();//对象的实例化          Person person2 = new Person();          Person person3 = new Person();          Person person4 = new Person();          Person person5 = new Person();          System.out.println(person1);          System.out.println(person2);

访问:

public static void main(String[] args) {         Person person = new Person(); //实例化一个对象         System.out.println(person.age);         System.out.println(person.name);         person.eat();          /*System.out.println(person.flg);         System.out.println(person.ch);         int a;         System.out.println(a);   */     }

局部变量:定义在方法当中,特点是当方法结束后该变量也随之消失,因为他存储在栈上。

1.作用域:在当前方法的括号内

2.生命周期:当方法结束,方法内的局部变量也随之消失。

成员属性:(定义在类内部,方法外部的变量)

1,实例成员变量  :age   name (在堆上)

2,静态成员变量  :count   (在方法区)

接下来看一下如何调用:

class Person {     //成员属性     public String name;          //访问修饰限定符:public   private   protected  什么都不写     public int age;             //name和age是实例成员变量     public static int count;       //静态成员变量,在方法区,不管new多少个,只有一个count      /*public boolean flg;     public char ch;*/     //成员方法     public void eat() {         System.out.println("吃饭");     }      public static void func() {         System.out.println("静态的方法");     }      public void show() {         System.out.println("姓名:" + name + "年龄" + age);     } } public class TestDemo {     public static void main(String[] args) {         Person person1 = new Person();         person1.name = "佐助";         person1.show();         System.out.println(person1);     }      public static void main7(String[] args) {         Person person1 = new Person();         person1.name = "佩奇001";         //person2这个引用指向了person1这个对象         Person person2 = person1;         System.out.println(person2.name);     }       public static void main6(String[] args) {         Person person1 = null;         person1.name = "佩奇";         System.out.println(person1.name);     }

Alt+Insert快捷键直接生产show函数

static关键字

1,修饰成员变量:静态成员变量

2,修饰成员方法:静态成员方法

3,修饰代码块:

注意:静态的方法内部不能有实例数据成员。

原因:1.静态的方法不依赖于对象,而实例数据成员需要通过实例化才能产生(new)

2.静态的方法和静态的数据->静态的优先被执行的

public String name;          //访问修饰限定符:public   private   protected  什么都不写     public int age;             //name和age是实例成员变量     public static int count;  //静态成员变量,在方法区,不管new多少个,只有一个count     // 加static是静态的     public final int SIZE1 = 10;  //被final修饰的常量,对象,和final没关系,堆     public static final int SIZE2 = 10;  //方法区

封装:

private实现封装

class Person2{     private String name;     private int age;     public void setName(String myName){         name = myName;     }     public void setAge(int myAge){         age = myAge;     }     public int getAge(){         return age;     }     public String getName(){         return name;     } } public class TestDemo2 {     public static void main(String[] args) {         Person2 person2 = new Person2();         person2.setAge(15);         person2.setName("卡卡西");         System.out.println(person2.getAge());         System.out.println(person2.getName());      } }

普通方法:public  返回值  方法名  (参数列表){

方法体

}

构造方法:

前提问题:实例化一个对象分为几步?

1.为对象分配内存

2.调用合适的构造方法,才会产生一个对象。

class Person2{     private String name;     private int age;     //alt+insert     // (get and setter)快速生成     //(Constructor)     //this代表当前对象的引用。      public Person2(){         System.out.println("Person2()");     }     public Person2(String name){         this.name = name;         System.out.println("Person2(String)");         System.out.println(this.name);     }     public Person2(String name,int age){      this.name = name;      this.age = age;         System.out.println("Person2(String,int)");     }      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;     }        private void func4(){         System.out.println("func()");     }     public void  func2(){         func4();     }    }   public class TestDemo2 {     public static void main(String[] args) {         Person2 person2 = new Person2();         Person2 person3 = new Person2("Java");         Person2 person4 = new Person2("鸣人",18);     }       public static void main1(String[] args) {         Person2 person2 = new Person2();         person2.setAge(15);         person2.setName("卡卡西");         person2.func2();         System.out.println(person2.getAge());         System.out.println(person2.getName());      } }

到此为止,下集更精彩