java学习之面向对象基础篇

1.面向对象的概念:针对用户提出的要求就行分析,并将用过户提出的要求做成一张图纸,然后与用过户进行确认,然后进行准备工作,将任务分块完成,最后组装。
面向对象的程序设计主要有封装性,继承性,多态性3个主要的特性。
(1)封装性:把对象的属性和行为看成一个密不可分的整体,封装在对象中;信息隐
(2)继承性:在已有的基础的类上进行开发,用户的程序是继承这些已有的类,经继承产生的类称为子类,被继承的类成为父类。
(3)多态性:多态允许程序的出现重名现象。方法的重载现象;子类对象可以和父类对象进行相互转化
2.类:类是面向对象程序设计的最小部分。类由属性,封装,方法组成。
   类的定义:class 类名(类名必须大写)
  {
  属性;
  public ....;
  return;
  }
例如:class Person
 {
  //类的属性
  String name;
  int age;
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
 }
3.对象的创建及使用:对象就是根据图纸创造出来的具体的事物。
   类名 对象名称=null;//栈内存
   对象名称=new 类名();//堆内存
例如:class Person
 {
  //类的属性
  String name;
  int age;
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
 }
 public class Demo_1
 {
  public static void main(String[] args)
  {
   Person per=null;
   per=new Person();
   或Person per=new Person();
   
  }
 }
创建多个对象:
class Person
 {
  //类的属性
  String name;
  int age;
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
 }
 public class Demo_1
 {
  public static void main(String[] args)
  {
   Person per=null;
   per=new Person();
   或Person per1=new Person();

   Person per2=new Person();
   
   
  }
 }

对象的引用传递:
class Person
 {
  //类的属性
  String name;
  int age;
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
 }
 public class Demo_1
 {
  public static void main(String[] args)
  {
   
   Person per1=new Person();
   Person per2=null;
   per2=per1;
   per1.name="jerry";
   per1.age=23;
   per2.age=34;
   per1.tell();
   per2.tell();
   
  }
 }
运行结果:
c:\Users\58324\Desktop>java Sean
姓名:jerryage:34
姓名:jerryage:34
可见per1和per2引用同一个堆内存。一个栈内存只能引用一个堆内存。

4.封装性。(面向对象的第一大特性)

之前所列举的都是对象直接访问类的属性,这在实际中是不允许的。所以在类中往往对属性进行封装。
private 生命的属性和方法只能在其类的内部被调用。
class Person
 {
  //类的属性
  private String name;//将属性进行私有化,对象将无法直接访问类的属性,通过setter 和getter的方法设置和  取得属性
  private int age;
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
  //
  public String getName()
  {
   return name;
  }

  public void  setName(String n)
  {
   name=n;
  }
  public int getAge()
  {
   return age;
  }
  public void setAge(int a)
  {
   age=a;
  }
 }

public class Sean
 {
  public static void main(String[] args)
  {
   
   Person per1=new Person();   
   per1.name="jerry";
   per1.age=23;   
   per1.tell();   
   
  }
 }
5.构造方法;
通过构造方法为属性赋值:
class Person
 {
  //类的属性
  private String name;
  private int age;
  //构造类型
   public Person(String name,int age)
   {
    this.setName(name);
    this.setAge(age);
   }
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
  public String getName()
  {
   return name;
  }
  public void setName(String s)
  {
   name=s;
  }
  public int getAge()
  {
   return age;
  }
  public void setAge(int n)
  {
   age=n;
  }
 }
public class Sean
 {
  public static void main(String[] args)
  {
   
   Person per=new Person("jerry",34);
   per.tell();     
  }
 }

结果:
c:\Users\58324\Desktop>java Sean
姓名:jerryage:34
6.匿名对象。就是没有明确给出名称的对象,一般匿名对象之使用一次,只在堆内存中开辟空间,而不存在栈内存的使用。
class Person
 {
  //类的属性
  private String name;
  private int age;
  //构造类型
   public Person(String name,int age)
   {
    this.setName(name);
    this.setAge(age);
   }
  //类的方法
  public void tell() //此处没有加static是因为此处的方法由对象调用,之前是和主方法在一起的
  {
   System.out.println("姓名:"+name+"age:"+age);
  }
  public String getName()
  {
   return name;
  }
  public void setName(String s)
  {
   name=s;
  }
  public int getAge()
  {
   return age;
  }
  public void setAge(int n)
  {
   age=n;
  }
 }
public class Sean
 {
  public static void main(String[] args)
  {
   
   new Person("jerry",34).tell();    
  }
 }

由于初次学习面向对象的语言,如有错误之处请前辈指出,一定会努力学习,继续改正。






你可能感兴趣的:(java学习之路)