类是一组相关属性和行为的集合,能够看做是一类事物的模板,好比说:不管中年人、老年人仍是小孩,都有身高、体重(这是属性),都会吃饭、睡觉(这是行为),那么咱们就能够抽取出这些共有的属性和行为,封装为一个类。类由两部分组成:java
对象是某类事物的具体体现,对象是类的一个实例,好比说:一株蒲公英是植物类的具体实例。this
修饰符 class关键字 类名{ //成员变量(属性) //成员方法(行为) }
public class Student{ String name;//姓名 int age;//年龄 //吃饭 public void eat(){ System.out.println("吃饭"); } }
Student是类名,name和age是成员变量(属性),定义的方式和声明普通变量同样;eat是成员方法(行为)。spa
类名 对象名=new 类名();
public static void main(String[] args){ //建立Student类实例 Student s=new Student(); //使用成员变量 System.out.println(s.name);//null System.out.println(s.age);//0 //调用eat方法 s.eat(); }
若是没有对成员变量进行赋值的话,那么将会使用它们的默认值code
public class Student { int age; float weight; char sex; boolean isMan; String name; public void eat(){ System.out.println("吃饭"); } public static void main(String[] args) { Student s=new Student(); System.out.println(s.age);//0 System.out.println(s.weight);//0.0 System.out.println(s.isMan);//false System.out.println(s.name);//null System.out.println(s.sex=='\u0000');//true } }
局部变量在方法内部定义对象
public class Student { int age; public void say(){ //定义局部变量a int a=1; System.out.println(a); } //形参也是局部变量 public void hel(int a){ System.out.println(a); } }
成员变量定义在类中、方法外blog
局部变量定义在方法中或方法声明上(形参)接口
做用范围不一样生命周期
成员变量做用范围是整个类内存
局部变量的做用范围是它所在的方法rem
public class Student { int age; public void say(){ //定义局部变量a int a=1; System.out.println(age); System.out.println(a); } public void hel(){ System.out.println(age); //System.out.println(a); 没法访问到a } }
是否有默认值
成员变量有默认值
局部变量没有默认值,必须定义赋值,而后使用
public void say(){ int a; //System.out.println(a); 未赋值没法使用 }
成员变量在堆内存
中
局部变量在栈内存
中
成员变量随着对象的建立而存在,随着对象的消失而消失
局部变量随着方法的调用而存在,方法调用完毕它便消失
封装是指将数据和操做数据的方法绑定起来,对数据的访问只能经过定义的接口。咱们在类中编写的方法就是对实现细节的一种封装;咱们编写的类就是对数据和数据操做的封装。
private
修饰符将变量修饰为私有变量(只有本类中能够访问)对外提供公有的能够访问私有变量的方法,如getXXX()方法和setXXX()方法
public class Test1 { public static void main(String[] args) { Person p=new Person(); //System.out.println(p.name); 没法直接访问 System.out.println(p.getName());//null 只能经过对外提供的接口进行访问 } } class Person{ private String name; private int age; 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; } }
一个.java文件中能够定义多个类,可是只能有一个类使用public修饰符
this关键字表明正在操做的那个对象,this.name表示该对象的成员变量name,区别于局部变量name
咱们知道,想要使用对象内的东西,必需要先使用new关键字建立对象,那么它是怎么建立出来的呢?答案就是构造方法,但是咱们的类中没有定义构造方法啊?虽然没有定义,可是咱们每一个类都有一个默认值的无参构造方法,咱们在new对象的时候就会调用构造方法。那么咱们该如何定义本身的构造方法呢?
#### 格式
【修饰符】 类名(【参数列表】){ //代码 }
#### 注意点
咱们能够在一个类中定义多个构造方法
public class Test1 { public static void main(String[] args) { //使用无参构造建立对象 Person p1=new Person(); //使用有参构造建立对象 Person p2=new Person("张三"); } } class Person{ private String name; private int age; //无参构造方法 public Person(){ System.out.println("我是无参构造方法"); } //我是有参构造方法 public Person(String name){ System.out.println(name); System.out.println("我是有参构造方法"); } }
执行结果:我是无参构造方法
张三
我是有参构造方法
#### 使用构造实现封装
前面经过编写setXXX
方法和getXXX
方法以及私有化成员变量实现封装,这里咱们经过构造方法实现封装
class Person{ private String name; private int age; //无参构造方法 public Person(){ System.out.println("我是无参构造方法"); } //我是有参构造方法 public Person(String name,int age){ System.out.println("我是有参构造"); this.name=name; this.age=age; } } public class Test1 { public static void main(String[] args) { //使用无参构造建立对象 Person p1=new Person(); //使用有参构造建立对象 Person p2=new Person("张三",23); } }
咱们没法访问对象的成员变量(属性),只能经过构造进行访问
JavaBean是java语言编写类的一种
标准规范,符合
JavaBean`的类必需要知足如下条件:
类必须是具体和公开的(使用public修饰)
必需要有操做成员变量的setXXX
方法和getXXX
方法
class Person{ private String name; private int age; //无参构造方法 public Person(){ System.out.println("我是无参构造方法"); } //我是有参构造方法 public Person(String name,int age){ System.out.println("我是有参构造"); this.name=name; this.age=age; } 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; } }
感谢你看到这里,文章有什么不足还请指正,以为文章对你有帮助的话记得给我点个赞,天天都会分享java相关技术文章或行业资讯,欢迎你们关注和转发文章!