创建java类并实例化类对象例一
1.面向对象的编程关注于类的设计
2.设计类实际上就是设计类的成员
3.基本的类的成员,属性(成员变量)&方法
面向对象思想的落地法则一:
1.设计类,并设计类的成员(成员变量&成员方法)
2.通过类,来创建类的对象(也称作类的实例化)
public class zoo { public static void main(String[] args) { //基本数据类型的声明,数据类型 变量名=初始化值 //类的实例化:如a1就是一个对象 Animal a1=new Animal(); //通过对象调用属性 a1.name="阳阳"; a1.age=3; System.out.println("name:"+a1.name+" age:"+a1.age); //通过对象调用方法 a1.eat(); a1.sleep(); } } class Animal{ //1.属性 String name; int age; //2.方法 public void eat(){ System.out.println("动物进食"); } public void sleep(){ System.out.println("动物睡觉"); } //getName是得到name的值 public String getName(){ return name; } //setName是给name设计一个值 public void setName(String n){ name=n; } }
二、创建多个对象,彼此各自拥有一套类的属性,当对其中一个属性进行修改时,不会影响到其他对象的属性
类对象的内存解析
public class zoo { public static void main(String[] args) { int i = 10; //基本数据类型的声明,数据类型 变量名=初始化值 //类的实例化:如a1就是一个对象 Animal a1 = new Animal(); //通过对象调用属性 a1.name = "阳阳"; a1.age = 3; System.out.println("name:" + a1.name + " age:" + a1.age); //通过对象调用方法 a1.eat(); a1.sleep(); //再创建一个类的对象 Animal a2 = new Animal(); System.out.println("name:" + a2.name + " age:" + a2.age); a2.name = "小花"; System.out.println("name:" + a1.name + " age:" + a1.age); System.out.println("name:" + a2.name + " age:" + a2.age); //a3不意味着相较于啊a1重新创建的一个对象,而是a1与a3公用一个对象实体 Animal a3 = a1; System.out.println("name:" + a3.name + " age:" + a3.age);//与a1一样 a3.name = "维尼熊"; System.out.println("name:" + a1.name + " age:" + a1.age); } } class Animal { //1.属性 String name; int age; //2.方法 public void eat() { System.out.println("动物进食"); } public void sleep() { System.out.println("动物睡觉"); } //getName是得到name的值 public String getName() { return name; } //setName是给name设计一个值 public void setName(String n) { name = n; } }
三、类的属性(成员变量)
成员变量vs局部变量
局部变量:是在某个方法中的变量
成员变量:在类中定义的变量
在类中没有在其他方法中定义的变量就是成员变量
如public class tip{
int j=10;
}
这个里面的j就是成员变量
public void setName(String n){}
中的n就是一个局部变量
或者是在方法里面定义的也叫局部变量如:
public void addAge(){
int i=2;
age +=i;
}
中的int i=2;这个也是局部变量
成员变量和局部变量的相同点:
1.格式都一样: 数据类型 变量名 = 初始化值
2.都有作用域:局部变量作用在它所存在的方法中,方法变量作用在它所存在的类中。
一旦出了它们所存在的范围就不能使用,除非通过对象的调用(如:.name来调用)
成员变量和局部变量的不同点:
1.声明的位置不同:成员变量声明在类里,方法外。局部变量声明在方法内,和方法的形参部分(public void setName(String n){}的n)
代码块内
2.成员变量的修饰符有四个:public、private、protected、缺省(就是省略不写)(如public class v{
int b=2;
}这里的int前面可以加修饰符)
局部变量没有修饰符,与所在的方法修饰符一样(如public void addAge(){
int i=2;
age +=i;
}这里的i是局部变量,修饰符就是方法的修饰符public)
3.初始化值:无论哪种变量都有初始化值,成员变量如果没有赋值不同的数据类型则有默认的初始化值。
局部变量一定要显示赋值,因为局部变量没有默认的初始化值
4.二者在内存中存放的位置不同:成员变量存在于堆空间中,局部变量存在于栈空间中
四、类的方法:提供某种功能的实现
1.格式:权限修饰符(public、private、protected、缺省(就是省略不写)) 返回值类型(void:无返回值/具体返回值) 方法名(形参,String等){}
2.关于返回值类型:void,表明不需要返回值。
如:public void eat{
System.out.println("进食");
}
有返回值的类型:在方法最后一定有return+返回值类型对应的变量
如:public int getAge(){
return age;
}
记忆:void与return不能同时出现在一个方法内,像一对冤家
3.方法内可以调用本类的其他方法或属性,但是不能在方法内定义方法
//(1) public class W { String name; int age; String sex; 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; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public void study(){ System.out.println("studying"); } public void showAge(){ System.out.println(age); } public int addAge(int i){ age+=i; return age; } public static void main(String[] args) { W a=new W(); a.study(); a.showAge(); a.addAge(2); a.showAge();//相等于System。out。println(a.age); System.out.println(); //(2) W b=new W(); b.showAge(); a.showAge(); } }
public class circle { public static void main(String[] args) { Tcircle c1=new Tcircle(); c1.r=2.3; c1.findArea(); } } class Tcircle{ double r=1.0; //提供一个方法,用来获取圆的面积 public void findArea(){ System.out.println(3.14 * r * r); } }
原文:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/10111448.html