栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day

1.封装
 * 封装 : 控制用户对类的修改程度,隐藏属性和行为的具体实现,只提供公开的接口即可
1.1Package
 
1.2import 
package day11.package1;

public class User {

	public void m1() {
		System.out.println("成员方法");

	}

}
package day11;

public class Text02 {

	public static void main(String[] args) {
		//调用一个不是本包中的类.需要写全类名
		//包名.类名
		day11.package1.User user =new day11.package1.User();
		user.m1();

	}

}
package day11;
//导入对应的这个类
import day11.package1.User;
//.*是导入对应包下的所有类
import java.util.*;
//java.lang.*;下的所有类,为系统核心类,可以直接使用,不需要导入

public class Text03 {
	public static void main(String[] args) {
		String str ="xxx";
		//调用一个不是本宝中的类需要写全类名
		//包名.类名
		
		User user= new User();
		user.m1();

	}

}
package day11;
//静态导入访问一个类的静态属性的时候,需要使用 类名.静态属性访问
//但是静态属性导入之后,就可以直接写静态属性访问
import static day11.package1.User.*;
import day11.package1.User;

public class Text04 {
	public static void main(String[] args) {
		//类名.静态变量名
		System.out.println(User.a);
		//因为静态导入了,所以可以直接写变量名
		//不建议使用,因为在当前类中不容易看出来这个变量到底是谁的
		System.out.println(a);

	}

}
1.3权限控制

package day11;
import day11.package2.User;

public class Text06 {

	public static void main(String[] args) {
		System.out.println(User.a);
		//除了a都不能访问 因为不在同一个包里
		//	System.out.println(User.b);
		//	System.out.println(User.c);
		//	System.out.println(User.d);
		
		//除了b都能访问 因为是私有权限
		System.out.println(Text05.a);
		//System.out.println(Text05.b);
		System.out.println(Text05.c);
		System.out.println(Text05.d);
	}

}
2.继承 2.1是什么
 
2.2能做什么 
 
2.3怎么用 
package day11;

public class Supclass {
	public void m1(){
		System.out.println("父类m1");
	}
}
package day11;

public class Subclass extends Supclass {
	public void m2(){
		System.out.println("子类m2");
	}
}
package day11;

public class Text07 {

	public static void main(String[] args) {
		Subclass subClass = new Subclass();
		// 调用继承自父类的方法
		subClass.m1();
		// 调用自己的方法
		subClass.m2();
		// 因为所有类都直接间接继承Object,而toString就是Object中的方法
		subClass.toString();}

}
3.super 3.1是什么
 
3.2能做什么 
 
3.3怎么用 
package day11;

public class SupClass_ {
	int i = 1;
	public void m1(){
		System.out.println("父类m1");
	}
	public SupClass_(){
		super();
		System.out.println("父类构造");
	}
	public SupClass_(int i){
		super();
		System.out.println("父类构造"+i);
	}
}
package day11;

public class SubClass_  extends SupClass_{
	int i = 2;
	public void m1(){
		System.out.println("子类m1");
	}
	public void test(){
		// 由于子类也有,所以默认使用子类的
		System.out.println(i);
		// 想使用父类的,需要使用super区分
		System.out.println(super.i);
		m1();
		super.m1();
	}
	public SubClass_(){
		// 可以调用父类指定的构造方法,默认是调用无参
		super(22);
		System.out.println("子类构造");
	}

}
3.4注意

1.this(...)和super(...)不能同时出现

2 如果没有this(...) 和 super(...) ,默认构造方法第一行会有super()调用父类无参构造

3 如果构造方法私有化,则该类不能被继承

package day11;

public class Text09 {

	private Text09(){
		
	}
}
// 构造方法私有化之后,不能被继承,因为子类构造方法中,需要调用父类构造方法
//但是因为私有化的问题,导致子类调用不了
//class Test extends Text09{
//	
//}
3.5优先级
package day11;

public class Text10 {

	public static void main(String[] args) {
		new Sub();
		}
}
	class Sub extends Sup {
		static {
			System.out.println("子类静态语句块");
		}

		{
			System.out.println("子类实例语句块");
		}

		public Sub() {
			System.out.println("子类构造");
		}
	}

	class Sup {
		static {
			System.out.println("父类静态语句块");
		}
		{
			System.out.println("父类实例语句块");
		}

		public Sup() {
			System.out.println("父类构造");
		}
	}
4.覆写 4.1是什么
 
4.2应用场景 
 
package day11;

public class Text11 {
	public static void main(String[] args) {
		Cat c = new Cat();
		c.move();
	}
}
class Animal{
	public void move(){
		System.out.println("动物移动");
	}
}
class Cat extends Animal{
	// @Override注解 标识该方法是覆写的父类的方法
	// 如果加着该注解,方法如果不小心写错了,比如方法名拼写错误的时候,会提示有错
	@Override
	public void move() {
		System.out.println("猫......在跳高");
	}

}
5.final 5.1是什么
 * final 是修饰符,表示最后的,最终的,不可更改的
5.2能做什么
 
5.3怎么用 
//final class A{
//}
// 不能继承,因为A是最终的,使用final修饰了
//class B extends A{
//}
class A{
	public final void m1(){
	}
}

//class B extends A {
	// @Override
	// 不能覆写,因为m1使用final修饰 是最终的
	// public void m1() {
	// }
//}
public class Text12 {

	// 没有默认值,会报错
	// final int a ;

	final int i;

	Text12(int i) {
		this.i = i;
		// 不能二次赋值
		// this.i = i;
	}
}
//常量
class MyMath{
	public static final double PI = 3.14;
}
5.4深入final
package day11;

public class Text13 {

	public static void main(String[] args) {
		final int i = 1;
		// i = 2;

		final Customer c = new Customer("张三", 18);
		// c中保存的地址,根据地址找到的数据是可以更改的,因为name又没有加final修饰
		c.name = "李四";
		// 因为c使用final修饰了,所以c不能再更改为其他值
		// c = null;
		// c = new Customer("张三", 18);
		System.out.println(c.name);
		System.out.println(c.age);
	}

}
class Customer {
	String name;
	int age;

	public Customer(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号