JAVA---week 6

ch9要点
 对象和类
 1   定义对象和类
     数据域:对象的状态
     方法:对象的行为
   circle(类名) a=new circle();
   new一个类时自动跳到对应的类,circle a声明一个对象,new circle在内存中找个位置
 3 构造方法和对象
     方法名必须与类名同名
     没有返回值,没有void !!!Circle2(double newRadius) {
     目的是创建对象时,初始化对象,new调用的是构造方法
     构造方法可以重载
     默认构造方法:没定义构造方法时,类隐含定义一个方法体为空的无参数构造方法 ,但是没有定义构造方法也可以会默认用了一个无参的构造方法(没操作)
     在同一个类中不同的方法可以用构造方法,  public static void main(String[] args) {
                   System.out.println(new  Circle1(3).getArea());
 4    通过引用变量访问对象
      1 引用变量和引用类型
      2 访问对象的数据和方法
      3 引用数据和null值
      4 基本类型和引用类型的区别
 5  静态变量、常量和方法
  (想要计算对象的个数:成员变量可以在每次new的时候改变)就可以用静态static(类变量:类共有),尽管是不同的对象,没写static默认为实例变量
      作用 
 成员变量(数据域,类的变量)
  实例变量:方法外部,类内部定义的变量。
  静态变量:静态变量被类中的所有对象所共享。静态方法不能访问类中的实例成员。静态变量将变量值存储在一个公共的内存地址
 局部变量:方法内部定义的变量(包括形式参数)
类中的常量:是被该类的所有对象所共享的。因此,常量应该声明为 final static  final static double PI - 3.1415926535S979323846:
静态方法(例如: getNumberOfObjectsO ) 和静态数据(例如:numberOfObjects) 可以通过引用变量或它们的 类名来调用,实例方法(例如:getAreaO ) 和实例数据(例如:radius) 都是属于实例的,所 以它们在实例创建之后才能使用。它们是通过引用变量来访问的
 6 可见性修饰符
    public 修饰符,表示它们可以被任何其他的类访问。 如果没有使用可见性修饰符,那么则默认类、方法和数据域是可以被同一个包中的任何一个 类访问的。
  private 修饰符限定方法和数据域只能在它自己的类中被访问,只能应用在类的成元上。修饰符 public 可以应用在类或类的成员 上。在局部变量上使用修饰符 public 和 private 都会导致编译構误。
 7 数据域封装
使用Private 修饰符将数据域声明为私有的,这称 为數据域封装
  public double getRadiusO { 21 return radius; 22 }
 public void setRadius(double newRadius) { 26 radius =« (newRadius >= 0) ? newRadius : 0; 27 }
 8  给方法传递对象参数
      对象传递给方法,传递的是引用 : printCi rcle(myCircle); ,在方法中引用的对象和传递的对象是一样的
      理解值传递 :当传递基本数据类型参数时,传递的是实参的值。
 9 对象数组
      数组元素为对象
      实际上是引用变量数组
     创建对象数组
 10  关键字this
  是指向调用对象本身的引用名。可以用 this 关键字引用对象的实例成员:public double getAreaC  { return this.radius * tMs.radius * Math.PI; }
                                            == return radius * radius * Math.PI; }

  关键字this的一种常见用法就是引用类的隐藏数据域(hidden data fields)。
  public class F
    {
    private int i=5;
    private static double k=2;
    public voidseti(int i)
    {
     this.i=i;
    }
    public static void setk(double k)
    {
     F.k=k;
    }
  关键字this的另一种常见用法是让构造方法调用同一个类的另一个构造方法。public ClrcleQ { thls(l.0);}
  * object显示的是父类的基本方法,变量名第一个小写
 * 防止随意改类中的变量就可以改成private,默认是可以在自己的类中用,但是可以用get set方法来访问与修改,set用this(当前类)来指向成员变量(解决成员变量与局部变量)
 *想要用其他的类要new   成员变量:与方法并列         局部变量:在方法内部
 *public /int a 都可以用,private不可,方法也是public/void可,在同一个package中可以用,但在不同的package中只可以用public的
 *不在同一个package中如果没有import的话就不可以声明一个类
 *如果创建对象时用有参(数据不对)构造函数时怎么防止,用this.a=……来进行判断再赋值
 *两个(有无参)构造函数类似但是有一点不同,画一个圆时颜色粗细等等是相同的但是设置半径不同,可以在一个构造函数中用this来调用另一个构造函数来修改this(1)
 *想要计算对象的个数,成员变量可以在每次new的时候改变就可以用静态static(类变量:类共有),尽管是不同的对象,没写static默认为实例变量
 *public函数要实例化来用,static可以直接用类名。方法
 *静态方法只可以访问静态变量,而其他方法是可以访问所有变量
 
关于字符串的一些事
 String a="aaa";
 String b="aaa";  a和b是同一个地址
 String c="aaa "; c不在同一个地址
 String d=new String("aaa");  d也是新的地址
 c=a 则c的地址就和a一样了
 b=“bbb” b的地址和内容都会变
 
数学类:
data
     java.util.Date date=new java.util.Date();
     System.out.println(date.getTime());  1569735637125
     System.out.println(date.toString());  Sun Sep 29 13:40:37 CST 2019
random
  Random a=new Random(3);
  System.out.println(a.nextInt()); -1155099828
  Random b=new Random(3);
  System.out.println(b.nextInt());  -1155099828
  System.out.println(a.nextInt(6));  2
  System.out.println(a.nextLong());  1309571695633557482
  System.out.println(a.nextDouble());  0.06712000939049956
  System.out.println(a.nextFloat());  0.76815695
  System.out.println(a.nextBoolean());  true
 
不可变类:
定义不可变类来产生不可变对象。不可变对象的内容不能被改
的所有数据域必须都是私有的,而且没有对任何一个数 据域提供公共的 set 方法且没有一个返回指向可变数据域的引用的访问器方法。。一个类的所有数据都是私有的且没有修改器并不意味着它一定是 不可变类。
 
posted @ 2019-09-29 14:05  蓝jingjing  阅读(144)  评论(0编辑  收藏  举报