类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不代表某一个具体事物。
对象是抽象概念的具体实例。
默认初始化例子:
package com.opp.demo02; //学生类 public class Student { //属性:字段 String name;//null int age; //0 //方法 public void study(){ System.out.println(this.name+"在学习"); } }
package com.opp.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类:抽象的,需要实例化 //类实例化后返回一个自己的对象 //student对象就是一个Student类的具体实例 Student xiaoming = new Student(); Student xiaohong = new Student(); System.out.println(xiaoming.name); System.out.println(xiaoming.age); } }
赋值例子:
package com.opp.demo02; //学生类 public class Student { //属性:字段 String name;//null int age; //0 //方法 public void study(){ System.out.println(this.name+"在学习"); } }
package com.opp.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类:抽象的,需要实例化 //类实例化后返回一个自己的对象 //student对象就是一个Student类的具体实例 Student xiaoming = new Student(); Student xiaohong = new Student(); xiaoming.name="小明"; xiaoming.age=20; System.out.println(xiaoming.name); System.out.println(xiaoming.age); xiaohong.name=("小红"); xiaohong.age=(23); System.out.println(xiaohong.name); System.out.println(xiaohong.age); } }
用idea打开class文件的方法
1.
2.在modules把out根目录添加然后OK
3.会生成一个out目录
4.第一,会默认加一个方法,没有返回值类型,第二,方法名必须和类的名字相同
package com.oop.demo02; //java-->class public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //构造器作用:实例化初始值 public Person(){ } }
package com.oop.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //new 实例化一个对象 Person person = new Person(); System.out.println(person.name); //null } }
用this关键字可以直接输出
package com.oop.demo02; //java-->class public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //构造器作用:实例化初始值 //1.使用new关键字,本质是在调用构造器 // public Person(){ // this.name = "xiaoxiao"; // } //有参构造:一旦定义了有参构造, //无参就必须显示定义,否则会报错 public Person(String name){ this.name = name; } }
package com.oop.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //new 实例化一个对象 Person person = new Person(); System.out.println(person.name);//xiaoxiao } }
无参构造没有方法体的时候调用的话就是null
记住一个快捷键
alt+insert 自动生成有参、无参构造
生成有参构造的具体方法如下:
按alt+insert,然后回车
点击OK就可以自动生成一个有参构造
生成无参构造的具体方法如下:
构造器:
1.和类名相同
2.没有返回值
作用:
1.new本质在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,
显示的定义一个无参的构造
alt + insert
this. 代表当前类 后面等于的值是参数传进来的值
package com.oop.demo03; public class Pet { public String name; public int age; //无参构造 public void shout(){ System.out.println("叫了一声"); } }
package com.oop.demo02; import com.oop.demo03.Pet; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { Pet dog = new Pet(); dog.name = ("豆豆"); dog.age = 3; dog.shout(); System.out.println(dog.name); System.out.println(dog.age); } }
内存分析图