JAVA---week 6

mac2022-06-30  28

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 方法且没有一个返回指向可变数据域的引用的访问器方法。。一个类的所有数据都是私有的且没有修改器并不意味着它一定是 不可变类。  

转载于:https://www.cnblogs.com/jingjing1234/p/11585488.html

最新回复(0)